##Abrindo o Projeto Monitora.Rproj
Para que o arquivo tutorial_fluxo_analises.Rmd funcione
de maneira adequada em sua mĂĄquina, vocĂȘ deve descompactar o arquivo
piper3D_monitora_florestal.zip. Uma nova pasta com o mesmo
nome serå criada no diretório escolhido para executar a descompactação.
Nela, vocĂȘ deverĂĄ clicar duas vezes sobre o Ăcone
Monitora.Rproj para começar a executar os arquivos contidos
no projeto. Ao realizar esse procedimento, vocĂȘ garantirĂĄ que seu
diretĂłrio de trabalho esteja configurado como o diretĂłrio da pasta
piper3d_monitora_florestal assegurando o funcionamento
correto dos cĂłdigos contidos no projeto.
Os cĂłdigos deste arquivo estĂŁo disponĂveis em chunks, que podem ser rodados individualmente.
Caso nĂŁo queira rodar parte dos cĂłdigos, vocĂȘ pode bloquear os chunks
através do argumento eval=FALSE na linha de comando dos
chunks, conforme exemplo:
Caso nĂŁo queira nem incluir os cĂłdigos no relatĂłrio resultante, nem
rodar os cĂłdigos, vocĂȘ pode usar os argumentos echo=FALSE e
eval=FALSE na linha de comando dos chunks, conforme
exemplo:
Caso não queira que os resultados de algum código apareçam no relatório final, usar:
Caso queira omitir do relatĂłrio mensagens de avisos ou advertĂȘncias, usar:
# devtools::install_github("vntborgesjr/distanceMonitoraflorestal")
#
library(distanceMonitoraflorestal)
A tabela aseguir Ă© uma referĂȘncia para as versĂ”es dos pacotes utilizados no nesse projeto. Para garantir a reprodução dos cĂłdigos, Ă© importante que o R e os pacotes usados no projeto apresentem as configuraçÔes mĂnimas contidas na tabela 1.
# # gerar informaçÔes sobre os pacotes carregados
# info <- sessionInfo()
#
# # gerar tabela com os pacotes e versÔes
# tribble(
# ~Pacotes, ~VersĂŁo,
# version$language, version$version.string,
# info$otherPkgs$dplyr$Package, info$otherPkgs$dplyr$Version,
# info$otherPkgs$Distance$Package, info$otherPkgs$Distance$Version,
# info$otherPkgs$DT$Package, info$otherPkgs$DT$Version,
# info$otherPkgs$forcats$Package, info$otherPkgs$forcats$Version,
# info$otherPkgs$flextable$Package, info$otherPkgs$flextable$Version,
# info$otherPkgs$ggplot2$Package, info$otherPkgs$ggplot2$Version,
# info$otherPkgs$ggpubr$Package, info$otherPkgs$ggpubr$Version,
# info$otherPkgs$here$Package, info$otherPkgs$here$Version,
# info$otherPkgs$lubridate$Package, info$otherPkgs$lubridate$Version,
# info$otherPkgs$mrds$Package, info$otherPkgs$mrds$Version,
# info$otherPkgs$plotly$Package, info$otherPkgs$plotly$Version,
# info$otherPkgs$purrr$Package, info$otherPkgs$purrr$Version,
# info$otherPkgs$readr$Package, info$otherPkgs$readr$Version,
# info$otherPkgs$readxl$Package, info$otherPkgs$readxl$Version,
# info$otherPkgs$stringi$Package, info$otherPkgs$stringi$Version,
# info$otherPkgs$stringr$Package, info$otherPkgs$stringr$Version,
# info$otherPkgs$tibble$Package, info$otherPkgs$tibble$Version,
# info$otherPkgs$tidyr$Package, info$otherPkgs$tidyr$Version,
# info$otherPkgs$tidyselect$Package,info$otherPkgs$tidyselect$Version
# ) |>
# flextable::qflextable() |>
# flextable::set_caption(
# "Tabela 1 - configuração de pacotes necessĂĄrios e respectivas versĂ”es mĂnimas que devem ser utilizadas para reproduzir os cĂłdigos"
# )
A primeira função utlizada,
carregar_dados_brutos_xlsx(), irĂĄ carregar a planilha em
formato excel,
Planilha Oficial consolidada de Masto-aves 2014-21 Validada CEMAVE CPB CENAP.xlsx,
e gera automaticamente o arquivo dados_brutos.rds na pasta
data-raw. A função seguinte a ser utilizada,
carregar_dados_completos() que irĂĄ carregar o arquivo
dados_brutos.rds. Essa função foi escrita para carrega os
dados e operar uma sĂ©rie de transformaçÔes para devolvĂȘ-lo no formato
padronizado do programa DISTANCE para Windows.
Portanto, para garantir a reprodutibilidade dos cĂłdigos produzidos em
versÔes atualizadas da base de dados do Monitora, é importante tomar
alguns cuidados.
O primeiro e mais importante cuidado Ă© manter a consistĂȘncia
dos nomes das colunas em versÔes atualizadas da base de dados
do Monitora. Além de carregar os dados, a função
carregar_dados_completos() aplica uma série de
transformaçÔes nas colunas. Seus nomes são alterados, e a essas são
atribuĂdos tipos apropriados (data, caracter, fator, inteiro e
numérico), linhas são eliminadas e novas colunas são gereadas. Para
exemplificar, veja o cĂłdigo abaixo. Ele foi escrito para executar as
primeiras transformaçÔes nos dados e constitui o corpo da função
carregar_dados_filtrados().
# # carregar a base de dados do Monitora
# dados_brutos <- carregar_dados_brutos_xlsx()
#
# # gerar o data.frame desejado reproduzindo as transformaçÔes realizadas pela função carregar_dados_completos()
# dados_filtrados <- dados_brutos |>
# # selecionar as colunas necessĂĄrias para as analises, padronizando os nomes para o formato DISTANCE
# dplyr::select(
# uc_code = CDUC,
# uc_name = `Local - Nome da Unidade de Conservacao`,
# ea_number = `Numero da Estacao Amostral`,
# ea_name = `Nome da EA`,
# season = `Estacao do ano`,
# sampling_day = `data da amostragem`,
# day_effort = `Esforco de amostragem tamanho da trilha (m)`,
# sp = `Especies validadas para analise do ICMBio`,
# distance = `distancia (m) do animal em relacao a trilha`,
# group_size = `n de animais`,
# observadores = `nome dos observadores`
# ) |>
# # atribuir os tipos corretos Ă s colunas e criar novas colunas
# dplyr::mutate(
# uc_category = stringi::stri_extract_first_words(
# uc_name
# ),
# # abrevia o nome das UCs
# uc_name_abv = forcats::lvls_revalue(
# uc_name,
# new_levels = c(
# "ETM", "EM", "EN", "ESGT", "FJ", "PCV", "PA", "PSBoc", "PSBod", "PSC",
# "PSM", "PSC", "PSD", "PSP", "PSO", "PPN", "PCO", "PI", "PJaĂș", "PJur",
# "PMR", "PS", "PV", "PCA", "PMT", "RG", "RJ", "RTap", "RU", "RG",
# "RTrom", "RAT", "RBA", "RCI", "RCM", "RRC", "RROP", "RIA", "RRA", "RTA"
# )
# ),
# # atribuir o tipo data Ă coluna sampling_day
# year = lubridate::year(
# sampling_day
# ),
# # atribuir o tipo fator Ă s colunas do tipo caracter
# across(
# where(
# is.character
# ),
# as.factor
# ),
# # substituir separadores de nome por ","
# novo = stringr::str_replace_all(
# observadores,
# " e ",
# ", "
# ),
# # substituir separadores de nome por ","
# novo = stringr::str_replace_all(
# novo,
# " E ",
# ", "
# ),
# # substituir separadores de nome por ","
# novo = stringr::str_replace_all(
# novo,
# "/",
# ", "
# ),
# # substituir separadores de nome por ","
# novo = stringr::str_replace_all(
# novo,
# ";",
# ", "
# ),
# # substituir separadores de nome por ","
# novo = stringr::str_replace_all(
# novo,
# " a ",
# ", "
# )
# ) |>
# # transformar os nomes dos observadores da coluna novo em colunas individuais
# tidyr::separate_wider_delim(
# novo,
# ",",
# names = c(
# "obs1", "obs2", "obs3", "obs4", "obs5", "obs6"
# ),
# too_few = "align_start"
# ) |>
# # gerar uma nova coluna number_observers com o nĂșmero total de observadores em um mesmo transecto
# dplyr::mutate(
# # se o valor da observação é diferente de NA, substituir por 1, se for NA, substituir por 0
# obs1 = ifelse(!is.na(obs1), 1, 0),
# obs2 = ifelse(!is.na(obs2), 1, 0),
# obs3 = ifelse(!is.na(obs3), 1, 0),
# obs4 = ifelse(!is.na(obs4), 1, 0),
# obs5 = ifelse(!is.na(obs5), 1, 0),
# obs6 = ifelse(!is.na(obs6), 1, 0),
# # gera nova coluna number_observers a partir da soma das colunas de observadores individuais
# number_observers = obs1 + obs2 + obs3 + obs4 + obs5 + obs6
# ) |>
# # agrupar os dados pelas colunas ea_name e sampling_day
# group_by(
# ea_name,
# sampling_day
# ) |>
# # aninhar as observaçÔes agrupadas uem listas
# nest() |>
# # completar com o valor correto as linhas vazias das da variĂĄvel day_effort
# mutate(
# day_effort2 = purrr::map(
# data, \(.x) rep(
# .x$day_effort[
# !is.na(
# .x$day_effort
# )
# ][1]
# )
# )
# ) |>
# # desanihar os dados
# unnest(
# c(
# data,
# day_effort2
# )
# ) |>
# # desagrupar os dados
# ungroup() |>
# # selecionar as colunas desejadas e excluir as indesejadas
# select(
# tidyselect::starts_with(c("uc", "ea")),
# season,
# year,
# sampling_day,
# day_effort = day_effort2,
# sp:number_observers,
# -day_effort,
# -tidyselect::starts_with("obs")
# ) |>
# # filtrar os dados pela UC e espécie desejadas
# dplyr::filter(
# uc_name == "Resex Tapajos-Arapiuns",
# sp == "Dasyprocta croconota"
# ) |>
# relocate(
# uc_category,
# .before = uc_name
# ) |>
# relocate(
# uc_name_abv,
# .after = uc_name
# )
#
# # gerar tabela dinĂąmica dos dados completos
# dados_filtrados |>
# slice(
# 1:1000
# ) |>
# datatable(
# filter = list(
# position = "top"
# )
# )
O trecho do código que vai da linha 96 a 106 serve selecionar apenas as colunas de interesse presente nos dados originais. Note que os nomes das planilhas originais constam nesse trecho. Caso o nome de qualque uma dessas colunas seja alterado a função deixarå de funcionar.
Outro aspecto importante é a presença de observaçÔes não preenchidas
(ex. células vazias) nos dados originais. A função foi desenha para
resolver alguns problemas presentes nos dados originais. Por exemplo,
nas o trecho do código das linhas 194 a 210 as observaçÔes vazias
(NAs) sĂŁo substituidas pelo valor correto na coluna
day_effort. Essa correção continnuarå sendo realizada em
versÔes atualizadas dos dados do Monitora. Porém, se outras colunas além
das que estão sendo corrigidas possuirem observaçÔes vazias os dados
serão carregados e transformados, porém outras funçÔes podem ter o seu
funcionamento comprometido. Por exemplo, funçÔes de visualização e do
pacote Distance que podem nĂŁo funcionar devido a ausĂȘncia
de observação.
Dentre todas as funçÔes de carregamento de dados, apenas
carregar_dados_brutos_xlsx() carrega a base de dados
originais do Monitora, diretamente do diretĂłrio
data-raw/monitora_masto_aves_2023_04_04.xlsx. Ao mesmo
tempo que carrega e transforma os dados, essa função gera uma versão em
um formato mais leve, .rds, no diretĂłrio
data-raw
(data-raw/monitora_masto_aves_2023_04_04.rds). A função
seguinte no fluxo de trabalho carrega a base a partir dessa versĂŁo mais
leve. Logo, sempre que houver atualizaçÔes no arquivo original de dados
brutos Ă© necessĂĄrio iniciar a rotina de carregamento de dados
necessariamente com a função
carregar_dados_brutos_xlsx().
A base de dados para as anĂĄlise tornam-se disponĂveis ao usuĂĄrio com
o carregamento do pacote com o nome de
monitora_aves_masto_florestal. Podemos inspecionar seu
conteĂșdo usando a função glimpse do pacote
dplyr.
# inspecionar a base de dados
dplyr::glimpse(monitora_aves_masto_florestal)
Rows: 26,420
Columns: 19
$ nome_ea <fct> ana, ana, ana, ana, ana, ana, ana, ana,âŠ
$ n_visitas_repetidas <int> 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,âŠ
$ codigo_uc <dbl> 259, 259, 259, 259, 259, 259, 259, 259,âŠ
$ categoria_uc <fct> resex, resex, resex, resex, resex, reseâŠ
$ nome_uc <fct> resex_tapajos_arapiuns, resex_tapajos_aâŠ
$ nome_uc_abv <fct> rta, rta, rta, rta, rta, rta, rta, rta,âŠ
$ numero_ea <dbl> 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, âŠ
$ data_amostragem <dttm> 2015-02-25, 2015-02-25, 2015-02-25, 20âŠ
$ estacao <fct> chuvosa, chuvosa, chuvosa, chuvosa, chuâŠ
$ ano <dbl> 2015, 2015, 2015, 2015, 2015, 2015, 201âŠ
$ esforco_dia <dbl> 5000, 5000, 5000, 5000, 5000, 5000, 500âŠ
$ esforco_total <dbl> 335000, 335000, 335000, 335000, 335000,âŠ
$ nome_sp <fct> dasyprocta_croconota, mazama_sp, dasyprâŠ
$ nome_sp_abv <fct> dasy_croc, maza_sp, dasy_croc, pene_sp,âŠ
$ validacao <fct> especie, genero, especie, genero, especâŠ
$ distancia <dbl> 10, 5, 0, 3, 3, 5, 12, 18, 30, 15, 5, 1âŠ
$ tamanho_grupo <dbl> 1, 1, 1, 2, 1, 1, 1, 1, 20, 2, 5, 1, 5,âŠ
$ numero_observadores <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, âŠ
$ tempo_censo <drtn> -540 mins, -540 mins, -540 mins, -540 âŠ
A base de dados de aves e mamĂferos de mĂ©dio e grande porte gerada a partir de amostragem por distĂąncia contem 26420 observaçÔes (linhas) e 19 variĂĄveis (colunas). Dentre as variĂĄveis, hĂĄ 8 que constituem fatores, ou seja, sĂŁo variĂĄveis categĂłricas com diferentes nĂveis (ex. nome_ea, nome_uc, nome_sp), 10 constituem variĂĄveis numĂ©ricas contĂnuas (ex. numero_ea, esforco_total, distancia), 1 consituem variaÇeis numĂ©ricas inteiras (ex. ) e 2 variĂĄveis que representam datas e tempos (ex. data_amostragem, tempo_censo). Todas as anĂĄlises utilizam essa base de dados.
Para conduzir as anĂĄlises de estimatica de abundĂąncia e densidade das
espécies, é necessårio selecionar a espécie alvo e a(s) Unidade(s) de
Conservação onde esta(s) ocorre(m). Para isso, o pacote oferece uma
função para filtragem e seleção dos dados chamada
filtrar_dados(). A função possui trĂȘs argumentos,
nome_ucs, nome_sps e
validacao_obs, permite selecionar uma parte dos dados de
acordo com a(s) Unidade(s) de Conservação, espĂ©cie(s) e nĂvel de
validação taxonĂŽmico desejado, respectivamente. Ă possĂvel acessar a
documentação da função filtrar_dados() usando o código
help(filtrar_dados) ou ?filtrar_dados.
Por configuração, a função filtrar_dados() retorna a
base de dados monitora_aves_masto_florestal.
# retornar a base de dados completa
filtrar_dados()
Para retornar as observaçÔes de uma ou mais Unidades de Conservação,
o(s) nome(s) da(s) Unidade(s) de Conservação deve(m) ser informados
usando o argumento nome_ucs.
TambĂ©m Ă© possĂvel selecionar uma ou mais Unidades de Conservação fornecendo um vetor do tipo caracter com um ou mais elementos.
nomes_ucs
[1] resex_tapajos_arapiuns parna_de_pacaas_novos
[3] parna_da_serra_da_mocidade parna_da_serra_do_divisor
[5] parna_do_jau rebio_do_uatuma
[7] parna_da_amazonia parna_do_juruena
[9] rebio_trombetas parna_montanhas_do_tumucumaque
[11] flona_do_jamari esec_maraca
[13] esec_serra_geral_do_tocantins parna_chapada_dos_veadeiros
[15] parna_da_serra_da_bocaina parna_da_serra_do_cipo
[17] parna_do_cabo_orange rebio_do_jaru
[19] resex_cazumba_iracema resex_alto_tarauaca
[21] parna_do_superagui rebio_do_tapirape
[23] resex_ipau_anilzinho esec_da_terra_do_meio
[25] resex_riozinho_do_anfrisio rebio_do_gurupi
[27] resex_do_rio_cautario resex_do_rio_ouro_preto
[29] resex_barreiro_das_antas rebio_guaribas
[31] parna_do_iguacu parna_da_serra_da_bodoquena
[33] parna_do_virua parna_da_serra_da_cutia
[35] parna_da_serra_dos_orgaos resex_chico_mendes
[37] parna_dos_campos_amazonicos parna_da_serra_do_pardo
[39] esec_niquia parna_do_monte_roraima
40 Levels: esec_da_terra_do_meio esec_maraca ... resex_tapajos_arapiuns
# retornar as observaçÔes de mais de uma UC
filtrar_dados(nome_ucs = nomes_ucs[2:3])
Para selecionar as observaçÔes de uma ou mais espécies, o(s) nome(s)
da(s) espécie(s) ser informados usando o argumento
nome_sps.
# consultar o nome das UCs
nomes_sps <- monitora_aves_masto_florestal |>
dplyr::distinct(nome_sp)
nomes_sps
# retornar as observaçÔes de uma UC fornecendo o nome
filtrar_dados(nome_sps = "dasyprocta_croconota")
TambĂ©m Ă© possĂvel selecionar uma ou mais espĂ©cies fornecendo um vetor do tipo caracter com um ou mais elementos.
# gerar um vetor contendo os nomes das UCs
nomes_sps <- dplyr::pull(nomes_sps)
nomes_sps
[1] dasyprocta_croconota mazama_sp
[3] penelope_sp guerlinguetus_aestuans
[5] nasua_nasua pecari_tajacu
[7] sapajus_apella tayassuidae
[9] tayassu_pecari dasypus_sp
[11] dasyprocta_leporina callicebus_hoffmannsi
[13] cuniculus_paca felidae
[15] primates panthera_onca
[17] cracidae alouatta_nigerrima
[19] ortalis_guttata mazama_nemorivaga
[21] crypturellus_sp mazama_americana
[23] mico_humeralifer dasypus_novemcinctus
[25] mico_rondoni ateles_chamek
[27] pithecia_irrorata pauxi_tuberosa
[29] dasyprocta_fuliginosa psophia_viridis
[31] urosciurus_sp saguinus_weddelli
[33] callicebus_brunneus calicebus_caligatus
[35] tinamus_sp eira_barbara
[37] odontophorus_sp cebus_olivaceus
[39] ateles_belzebuth alouatta_macconnelli
[41] ortalis_motmot chiropotes_chiropotes
[43] sapajus_macrocephalus psophia_crepitans
[45] callicebus_lugens tamandua_tetradactyla
[47] na pauxi_tomentosa
[49] microsciurus_flaviventer aotus_trivirgatus
[51] aburria_cumanensis dasyprocta_sp
[53] myrmecophaga_tridactyla choloepus_didactylus
[55] galictis_vittata aburria_cujubi
[57] cebus_unicolor chiropotes_albinasus
[59] urosciurus_spadiceus cerdocyon_thous
[61] bradypus_variegatus alouatta_juara
[63] penelope_jacquacu saimiri_macrodon
[65] pithecia_monachus saguinus_sp
[67] lagothrix_poeppigii crax_globulosa
[69] callimico_goeldii cacajao_calvus
[71] microsciurus_sp cebus_albifrons
[73] pithecia_pithecia myoprocta_pratti
[75] saimiri_cassiquiarensis lontra_longicaudis
[77] cacajao_melanocephalus urosciurus_igniventris
[79] odontophorus_gujanensis pauxi_sp
[81] psophia_ochroptera tinamus_major
[83] myoprocta_acouchy chiropotes_chiropotes_sagulatus
[85] ateles_paniscus crax_alector
[87] nothocrax_urumutum saguinus_midas
[89] tapirus_terrestris saimiri_sciureus
[91] cyclopes_didactylus leopardus_wiedii
[93] priodontes_maximus sciuridae
[95] tinamidae puma_concolor
[97] saimiri_ustus cabassous_unicinctus
[99] aotus_nigriceps coendou_prehensilis
[101] didelphis_marsupialis atelocynus_microtis
[103] mico_sp pteronura_brasiliensis
[105] hydrochoerus_hydrochaeris callicebus_sp
[107] mico_melanurus lagothrix_cana
[109] callicebus_moloch alouatta_sp
[111] sciurillus_pusillus alouatta_puruensis
[113] callicebus_cinerascens callitrichidae
[115] crax_fasciolata bradypus_sp
[117] leopardus_tigrinus chiropotes_sagulatus
[119] penelope_marail puma_yagouaroundi
[121] leopardus_pardalis tinsmidae
[123] dasyprocta_prymnolopha speothos_venaticus
[125] nothura_sp penelope_obscura
[127] tinamus_solitarius guerlinguetus_ingrami
[129] odontophorus_capueira sapajus_nigritus
[131] callithrix_aurita alouatta_guariba
[133] callithrix_jacchus callithrix_penicillata
[135] rhynchotus_rufescens canis_familiaris
[137] pitheciidae psophia_leucoptera
[139] saimiri_boliviensis aotus_infulatus
[141] coendou_sp bradypus_tridactylus
[143] dasyprocta_cf_fuliginosa callicebus_bernhardi
[145] callicebus_cupreus saimiri_collinsi
[147] alouatta_belzebul psophia_interjecta
[149] saguinus_niger chiropotes_utahickae
[151] saguinus_imperator dasypus_kappleri
[153] guerlinguetus_ignitus odontophorus_stellatus
[155] coendou_bicolor mico_argentatus
[157] saimiri_collinsii gerliguetus_aestuans
[159] callicebus_vieirai psophia_dextralis
[161] ateles_marginatus mico_emiliae
[163] chiropotes_satanas mazama_gouazoubira
[165] didelphis_sp cebidae
[167] sylvilagus_brasiliensis saimiri_sp
[169] alouatta_discolor psophia_obscura
[171] cebus_kaapori mico_leucippe
[173] procyonidae cf_crax_sp
[175] penelope_superciliaris dasyprocta_iacki
[177] callicebus_baptista galliformes
[179] procyon_cancrivorus tapirus_sp
[181] dasyprocta_azarae cavia_sp
[183] didelphis_aurita cripturellus_sp
[185] sapajus_cay chrysocyon_brachyurus
[187] galea_spixii leopardus_sp
[189] cebuella_pygmaea cervidae
[191] cf_crax_globulosa ptheciidae
[193] sciurillus_sp guerlinguetus_sp
[195] brachyteles_arachnoides alouatta_guariba_clamitans
196 Levels: aburria_cujubi aburria_cumanensis ... urosciurus_spadiceus
# retornar as observaçÔes de uma UC fornecendo o nome
filtrar_dados(nome_sps = nomes_sps[1])
# retornar as observaçÔes de mais de uma UC
filtrar_dados(nome_sps = nomes_sps[c(33, 34)])
Para selecionar as observaçÔes de uma ou mais observaçÔes validadas,
o(s) nĂvel(is) taxonĂŽmico(s) deve(m) ser informados usando o argumento
validacao_obs.
# retornar as observaçÔes de uma espécie fornecendo o nome
filtrar_dados(
nome_sps = nomes_sps[c(33, 34)],
validacao_obs = "especie"
)
Finalmente, tambĂ©m Ă© possĂvel selecionar as observaçÔes a partir da(s) Unidade(s) de Cosnervação, espĂ©cie(s) e nĂvel(is) taxonĂŽmico(s) de validação.
# retornar as observaçÔes de uma espécie fornecendo o nome
filtrar_dados(
nome_ucs = "flona_do_jamari",
nome_sps = "callicebus_brunneus",
validacao_obs = "especie"
)
O uso da função que ajusta os modelos de função de detecção aos dados
para estimativa de abundùncia e densidade das espécies exigem que os
dados apresentem um formato especĂfico. A função
transformar_dados_formato_Dsitance() realiza a seleção das
variåveis e as transformaçÔes necessårias para deixar os dados prontos
para serem analisados.
Primeiramente, é necessårio criar um tabela de dados contendo as observaçÔes da espécie que se deseja estimar a densidade.
dasy_croc <- filtrar_dados(
nome_sps = "dasyprocta_croconota",
validacao_obs = "especie"
)
# transformar os dados para o formato do Distance
dasy_croc_com_rep <- transformar_dados_formato_Distance(dasy_croc)
dasy_croc_com_rep
A função também permite eliminar as amostragens repetidas realizadas
em uma mesma estação do ano, selecionando apenas o dia em que foi
registrado o maior nĂșmero de observaçÔes para uma determinada estação e
ano. Para eliminar as amostragens repetidas, basta utilizar o argumento
amostras_repetidas = FALSE.
dasy_croc_sem_rep <- transformar_dados_formato_Distance(
dados = dasy_croc,
amostras_repetidas = FALSE
)
dasy_croc_sem_rep
Apresentamos abaixo um conjunto de ferramentas que permite diversas formas de explorar todo o conjunto de dados.
# contar nĂșmero total de UC's
n_ucs <- contar_n_uc()
n_ucs
[1] 40
Os dados são provenientes de 40 unidades de conservação ao todo.
Gerar função para tabela dinùmica.
gerar_tabdin(n_ucs_ano)
n_ano_uc <- contar_n_ano_uc()
n_ano_uc
# contar nĂșmero de observaçÔes por UC
n_obs_uc <- contar_n_obs_uc()
n_obs_uc
# gerar tabdin
gerar_tabdin(n_obs_uc)
# gerar tabdin
gerar_tabdin(n_obs_uc)
# plotar o nĂșmero de observaçÔes por UC
plotar_n_obs_uc_interativo(n_obs_uc)
n_obs_uc_ano <- contar_n_obs_uc_ano()
n_obs_uc_ano
Tabela interativa para consultar quantas observaçÔes foram realizadas por ano em cada UC
gerar_tabdin(n_obs_uc_ano)
Essas operaçÔes são realizadas sobre a tabela de dados
dados_completos pois os dados que foram transformados para
o formato do distace no R nĂŁo possuem a coluna validation,
necessåria para essas opereaçÔes. Mais a frente o procedimento de como
obter os dados selecionados e transformatos para o formato das anĂĄlises
serĂĄ demonstrado.
# contar observaçÔes validadas ao nĂvel de espĂ©cie
n_obs_validadas <- contar_n_obs_validadas()
n_obs_validadas
observaçÔes.
# gerar grĂĄfico com nĂșmero observaçÔes validadas para cada nĂvel taxonĂŽmico
plotar_n_obs_validadas_interativo(n_obs_validadas)
n_sp <- contar_n_sp()
n_sp
[1] 196
Até aqui temos dados para 196 espécies.
##SuficĂȘncia Amostral
NĂșmero de observaçÔes
Para que o mĂ©todo de anĂĄlise por distĂąncia possa ser utilizado para estimativas baseadas em modelos, sĂŁo recomendadas quantidades mĂnimas de observaçÔes e de transectos (Unidades Amostrais). Segundo BUCKLAND et. al. (2015), O nĂșmero mĂnimo sugerido de animais ou grupos Ă© de 60 â 80 animais (ou grupos) quando a amostragem Ă© feita pelo mĂ©todo dos transectos lineares. Ă possĂvel utilizar nĂșmeros menores que estes para realizar as anĂĄlises, porĂ©m deve-se ter o cuidado de verificar se as funçÔes de detecção estĂŁo bem modeladas. Estes nĂșmeros recomendados se aplicam a cada função de detecção a ser modelada. Assim, quando se pretende estratificar os dados, dividindo-os em subconjuntos, seja por regiĂŁo geogrĂĄfica, seja por perĂodo amostral, Ă© necessĂĄrio ter um cuidado para que a suficiĂȘncia amostral se mantenha dentro dos subconjuntos.
Réplicas e repetiçÔes
O nĂșmero mĂnimo de rĂ©plicas para os transectos deve ser de 10-20, o que deve aumentar para espĂ©cies cujas populaçÔes sĂŁo distribuĂdas em manchas BUCKLAND et. al. (2015). O nĂșmero de rĂ©plicas reais para cada espĂ©cie Ă© o nĂșmero de transectos, que recebem os nomes das estaçÔes amostrais em cada Unidade de conservaçaĂ”.
Um outro aspecto que Ă© necessĂĄrio observar Ă© o nĂșmero de repetiçÔes, que terĂĄ impacto tanto sobre o esforço quanto sobre a suficiĂȘncia amostral. Uma das limitaçÔes dos dados do Programa Monitora Ă© o pequeno nĂșmero de rĂ©plicas por Unidade de Conservação e muitas repetiçÔes para as mesmas estaçÔes amostrais. O excesso de repetiçÔes, especialmente em um mesmo perĂodo amostral, compromete a premissa de independĂȘncia entre as observaçÔes. AlĂ©m disso, acaba tendo um efeito de inflar o esforço amostral e a ĂĄrea coberta pela amostragem, o que prejudica as estimativas de densidade.
Apenas para ilustar, para os dados da cutia Dasyprocta croconota da Resex TapajĂłs-Arapinuns, a Estação Amostral Boim foi percorrida durante 70 dias de amostragem. Isso significa que ajustando o comprimento do transecto de 5 km pelo nĂșmero de repetiçÔes, o esforço amostral passou para 350 km. A ĂĄrea coberta aumentou em 70x, o que terĂĄ consequĂȘncias sobre a estimativa densidade, que tenderĂĄ a ser subestimada. AlĂ©m disso, o coeficiente de variação das estimativas de taxa de encontro, abundĂąncia e densidade tambĂ©m tenderĂŁo a aumentar pelo efeito da variaçÔes temporais entre as amostragens.
Para lidar com o excesso de repetiçÔes, implementamos um fluxo de trabalho onde reduzimos o nĂșmero de repetiçÔes, mantendo somente um dia de amostragem com o maior nĂșmero de observaçÔes para cada perĂodo amostral (Parte V, Fluxo 2).
# contar total sp
n_obs_sp <- contar_n_obs_sp()
n_obs_sp
# gerar tabela dinĂąmica com o nĂșmero total de obsevaçÔes por espĂ©cie
gerar_tabdin(n_obs_sp)
# plotar o o nĂșmero de observaçÔes por UC
plotar_n_obs_sp_interativo(n_obs_sp)
# gerar tabela com o nĂșmero de observaçÔes por espĂ©cie e por UC
n_obs_sp_uc <- contar_n_obs_sp_uc()
n_obs_sp_uc
gerar_tabdin(n_obs_sp_uc)
n_obs_sp_ano <- contar_n_obs_sp_ano()
n_obs_sp_ano
Tabela interativa para consultar quantas observaçÔes foram realizadas para cada espécie em cada ano
gerar_tabdin(n_obs_sp_ano)
n_obs_sp_uc_ano <- contar_n_obs_sp_uc_ano()
n_obs_sp_uc_ano
Tabela interativa para consultar quantas observaçÔes foram realizadas para cada espécie em cada ano
gerar_tabdin(n_obs_sp_uc_ano)
n_obs_sp_uc_estacao_ano <- contar_n_obs_sp_uc_estacao_ano()
n_obs_sp_uc_estacao_ano
gerar_tabdin(n_obs_sp_uc_estacao_ano)
###INCLUIR Réplicas e RepetiçÔes
####NĂșmero de repetiçÔes por estação amostral para cada espĂ©cie
####NĂșmero de repetiçÔes por estação amostral por UC para cada espĂ©cie
####NĂșmero de repetiçÔes por estação amostral por UC para cada espĂ©cie por ano
####NĂșmero de repetiçÔes por estação amostral por UC para cada espĂ©cie por perĂod amostral (estaçÔes do ano/ano)
Algumas situaçÔes amostrais podem levar a efeitos indesejados na
distribuição dos dados, comentadas a seguir. Para explorar a
distribuição dos dados recomendamos também o uso do
app_distanca_interativo.R em
piper3d_monitora_florestal\apps.
Empilhamento das observaçÔes (heaping) â ocorre quando valores das distĂąncias perpendiculares sĂŁo arredondados. O efeito Ă© um acĂșmulo de observaçÔes sobre a mesma distĂąncia, que corresponde a um valor redondo. Um tipo especĂfico de empilhamento Ă© quando ele se dĂĄ sobre a distĂąncia zero, tambĂ©m chamado de pico prĂłximo a distĂąncia zero (spike near zero distance). Esse tipo de efeito foi observado com frequĂȘncia nos dados do Programa Monitora. Uma das estratĂ©gias para redução dos efeitos de empilhamento Ă© agrupar os dados de distĂąncia em intervalos. Implementamos essa estratĂ©gia na Parte V â Fluxo 3.
Movimento de resposta ao observador â os animais podem ser repelidos ou atraĂdos pelo observador. Para animais que apresentam resposta de fuga em relação ao observador o efeito no histograma de frequĂȘncias Ă© um aumento nas observaçÔes em distĂąncias intermediĂĄrias. Para animais que sĂŁo atraĂdos pelo observador, a tendĂȘncia Ă© de um aumento nas observaçÔes nas distĂąncias prĂłximas a zero, o que tambĂ©m pode gerar o padrĂŁo de pico prĂłximo a zero. O efeito desse viĂ©s sobre as observaçÔes Ă© enviesar tambĂ©m os modelos ajustados (formato da curva), as probabilidades de deteção e abundĂąncias estimadas em cada faixa de distĂąncia.
SuperdispersĂŁo â Ă© um efeito causado quando as observaçÔes nĂŁo sĂŁo independentes, como no caso das repetiçÔes em um mesmo transecto. O efeito no histograma sĂŁo picos em algumas distĂąncias ou reduçÔes abruptas em outras (Figura X). O excesso de repetiçÔes tambĂ©m foi uma limitação encontrada nos dados do Programa Monitora. Implementamos uma estratĂ©gia para reduzir o nĂșmero de repetiçÔes mantendo somente a data com o maior nĂșmero de observaçÔes por perĂodo amostral na Parte V - Fluxo 2.
Para maiores detalhes, ver figuras no Material de Suporte de Aspectos TeĂłricos.
# gerar o gråfico exploratório da distribuição de distùncias perpendiculares para a espécies Dasyrocta croconota na Resex Tapajós-Arapiuns
fig <- dados_filtrados |>
# excluir NA's da variĂĄvel distance
tidyr::drop_na(distance) |>
plotar_distribuicao_distancia_interativo()
fig
Uma boa escolha de covariĂĄveis passa por um bom processo exploratĂłrio dos dados. Ă importante avaliar como fatores ambientais ou amostrais podem influenciar de forma significativa a detectabilidade dos animais. Para avaliar esse possĂvel efeito, Ă© necessĂĄrio olhar a distribuição das covariĂĄveis em relação Ă distĂąncia. Se houver viĂ©s das covariĂĄveis em relação ĂĄ distĂąncia, Ă© possĂvel que estejam influenciando na detectabilidade tambĂ©m. Por exemplo, se a atividade de um animal Ă© influenciada pelo horĂĄrio, Ă© possĂvel que ele seja detectado com maior frequĂȘncia em distĂŁncias maiores no seu horĂĄrio de maior atividade.
Para os dados do Programa Monitora, uma das principais covariĂĄveis a ser considerada Ă© o tamanho do grupo (s, que deve ser chamada de size para o pacote Distance). Um dos efeitos esperados para espĂ©cies que formam grupos Ă© o chamado viĂ©s de tamanho. A tendĂȘncia Ă© que a pequenas distĂąncias todos os grupos sejam detectĂĄveis, mas somente os grupos maiores serĂŁo detectados a distĂąncias maiores.
A seguir, apresentamos o fluxo de anĂĄlise dos dados que envolve a fase exploratĂłria, truncamento, ajuste e avaliação de modelos e estimativas de abundĂąncia e densidade para as espĂ©cies que selecionamos como modelo. Usamos como critĂ©rios de seleção tanto o nĂșmero de observaçÔes por Unidade de Conservação quanto a distribuição das frequĂȘncias de observação, nos casos em que isso foi possĂvel. De forma geral, as espĂ©cies com nĂșmero satisfatĂłrio de observaçÔes ($>$60), apresentaram pico de observaçÔes prĂłximos a zero.
NĂłs usamos como modelo para este fluxo os dados da cutia Dasyprocta croconota coletados na Resex TapajĂłs-Arapiuns entre 2014 e 2021, pelo grande nĂșmero de observaçÔes para uma mesma UC. Os dados de distĂąncias perpendiculares para essa espĂ©cie apresentam trĂȘs caracterĂsticas indesejadas: nĂșmero excessivo de repetiçÔes amostrais numa mesma estação amostral, pico de distĂąncias prĂłximo a zero e empilhamento de observaçÔes em uma mesma distĂąncia.
Para lidar com as repetiçÔes, testamos a anĂĄlise dos dados com todas as repetiçÔes e com o nĂșmero de repetiçÔes reduzidas. Para lidar com os picos de distĂąncia prĂłximos a zero, testamos o uso dos dados com distĂąncias exatas e distĂąncias agrupadas. Essas estratĂ©gias estĂŁo descritas nos Fluxos 1-3. No primeiro fluxo, comentamos tambĂ©m as escolhas feitas e os resultados obtidos. Os demais fluxos sĂŁo repetiçÔes deste primeiro fluxo, porĂ©m com mudança na estrutura dos dados.
EspĂ©cies com maior nĂșmero de observaçÔes/UC possibilitam testar, posteriormente, estratificaçÔes nos dados, preservando um nĂșmero de observaçÔes satisfatĂłrio dentro dos estratos. Por isso, começamos apresentando um fluxo completo de anĂĄlise, incluindo Amostragem por DistĂąncia Convencional, Amostragem por DistĂąncia com MĂșltiplas CovariĂĄveis e Amostragem por DistĂąncia com Estratificação nos dados com as espĂ©cies com maior nĂșmero de observaçÔes. Por isso, selecionamos como modelo a espĂ©cie com o maior nĂșmero de observaçÔes para uma mesma UC e a terceira com o maior nĂșmero total de observaçÔes.
Essa Ă© a espĂ©cie com o maior nĂșmero de observaçÔes para uma mesma UC. Apresentou, como a maioria das espĂ©cies em diferentes UCs, um pico de observaçÔes prĂłximo a dsitĂąncia zero. TambĂ©m apresentou efeito de empilhamento sobre as distĂąncias 5, 10, 15 e 20m, indicando que os dados foram arrendondados para essas distĂąncias.
Ă possĂvel obter as observaçÔes da espĂ©cie e Unidade de Conservação
de interesse e tornĂĄ-las analisĂĄveis pelo pacote Distance
utilizando duas funçÔes: filtrar_dados() e
transformar_dados_formato_Distance(). A primeira filtra a
base de dados original a partir da espécie e UC desejada eplos
argumentos nome_sps e nome_ucs, enquanto a
segunda transforma os dados para o formato do pacote
Distance.
# carregar dados
cutia_tap_arap <- filtrar_dados(
nome_ucs = "resex_tapajos_arapiuns",
nome_sps = "dasyprocta_croconota"
) |>
transformar_dados_formato_Distance()
cutia_tap_arap
O histograma interativo estĂĄ disponĂvel no aplicativo em Shiny
app_distancia_interativo.R em
piper3d_monitora_florestal\apps.
A distribuição dos dados no histograma permite observar um pico de
observaçÔes próximo a zero, assim como picos de observação em 5, 10, 15
e 20m, além de uma consideråvel perda em detectabilidade a partir dos
20m. Ă possĂvel alterar a binagem dos histogramas atravĂ©s do argumento
largura_caixa. Neste exemplo ajustamos para 1, o que
facilita a observação de picos de detecação e efeitos de
heaping nos dados.
cutia_tap_arap |>
tidyr::drop_na(distance) |>
plotar_distribuicao_distancia_interativo(largura_caixa = 1)
Para eliminar as observaçÔes feitas a distùncias com baixa detectabilidade, vamos testar diferentes proporçÔes de truncamento.
Vamos explorar diferentes distĂąncias de truncamento para um mesmo
modelo de função chave com distribuição half-normal. Optamos por truncar
os dados pela percentagem para padronizar a rotina para diferentes
espécies. Buckland et al. (2001) sugere um corte entre 5-10% das
observaçÔes detectadas nas maiores distùncias. Vamos selecionar o valor
de corte pelo modelo com melhor ajuste utilizando a função
selecionar_distancia_truncamento(). Para automatizar a
avaliação da truncagem para qualquer conjunto de dados, implementamos no
código o teste para as seguintes proporçÔes de corte: 5, 10, 15, 20 e
25% das observaçÔes mais distantes. Contudo, os valores de corte podem
ser alterados pelo usuĂĄrio fornecendo uma lista com novos valores ao
argumento dist_truncamento. A função gera uma tabela
comparando os modelos e também plotamos os gråficos dos modelos
ajustados para os dados truncados usando a função plotar_.
# conduz a selecao da melhor distancia de truncamento a partir do ajsute de modelos com funcao de deteccao half-normal sem termos de ajuste
cutia_tap_arap_dist_trunc <- cutia_tap_arap |>
selecionar_distancia_truncamento()
Fitting half-normal key function
AIC= 4676.418
Fitting half-normal key function
AIC= 5354.545
Fitting half-normal key function
AIC= 5791.182
Fitting half-normal key function
AIC= 6375.771
Fitting half-normal key function
AIC= 7212.428
cutia_tap_arap_dist_trunc$selecao
Os critĂ©rios de ajuste dos modelos servem aqui como uma informação complementar, mas nĂŁo serĂŁo decisivos na escolha da distĂąncia de truncamento. Naturalmente, eliminando os dados das distĂŁncias de menor detectabilidade, os modelos tendem a ter um melhor ajuste pela menor variabilidade dos dados. AlĂ©m disso, nesse caso os valores de deltaAIC serĂŁo sempre zero, pois nĂŁo Ă© possĂvel comparar valores de AIC para conjuntos de dados diferentes (nesse caso os dados diferem em nĂșmero de observaçÔes).
Histogramas resultantes dos modelos, com todas as distùncias de truncagem, para auxiliar na seleção da melhor distãncia.
plotar_funcao_deteccao_selecao_distancia_truncamento(cutia_tap_arap_dist_trunc)
$`25%`
NULL
$`20%`
NULL
$`15%`
NULL
$`10%`
NULL
$`5%`
NULL
ApĂłs avaliar tanto o ajuste dos modelos quanto os grĂĄficos, optamos por truncar 10% das observaçÔes feitas nas maiores distĂąncias. Apesar dos melhores valores de AIC e de ajuste do CramĂ©r-von Mises para 25%, os histogramas com modelos ajustados para 25%, 20% e 15% apresentaram modelos quase lineares e com uma grande probabilidade de deteção nos Ășltimos intervalos de distĂąncia. O modelo com corte de 10% apresentou uma curva decrescente e nĂŁo tendeu a zero nas Ășltimas distĂąncias. JĂĄ no modelos para 5% as funçÔes de deteção tendem a zero nos Ășltimos intervalos de distĂąncia. O corte de 10% das observaçÔes mais distantes resultou em uma distĂąncia de truncamento de 15m.
As funçÔes de detecção são ajustadas através da função
ds() no pacote Distence para o R. Para otimizar o fluxo de
ajuste de diferentes modelos de função de detecção, empacotamos as
diferentes combinaçÔes de funçÔes chave (uniforme, half-normal e
hazard-rate) e termos de ajustes (cosseno, polinomial simples e
polinomial de Hermite) na função
ajustar_modelos_distance().
Para definir a distĂąncia de truncamento dos dados Ă© necessĂĄrio
fornecer o argumento truncamento, que pode ser definido
tanto em percentagem de corte dos dados quanto em valor de
distĂŁncia.
# ajustando a função de detecção uniforme para um truncamento de 10% dos dados
cutia_tap_arap_unif <- cutia_tap_arap |>
ajustar_modelos_Distance(
funcao_chave = "unif",
truncamento = "10%")
Starting AIC adjustment term selection.
Fitting uniform key function
AIC= 6586.595
Fitting uniform key function with cosine(1) adjustments
AIC= 6363.157
Fitting uniform key function with cosine(1,2) adjustments
AIC= 6357.69
Fitting uniform key function with cosine(1,2,3) adjustments
Warning: Detection function is not strictly monotonic!AIC= 6328.133
Fitting uniform key function with cosine(1,2,3,4) adjustments
Warning: Detection function is not strictly monotonic!AIC= 6295.384
Fitting uniform key function with cosine(1,2,3,4,5) adjustments
Warning: Detection function is not strictly monotonic!AIC= 6288.133
Warning: Detection function is not strictly monotonic!Starting AIC adjustment term selection.
Fitting uniform key function
AIC= 6586.595
Fitting uniform key function with simple polynomial(2) adjustments
AIC= 6410.42
Fitting uniform key function with simple polynomial(2,4) adjustments
Warning: Detection function is not strictly monotonic!AIC= 6367.003
Fitting uniform key function with simple polynomial(2,4,6) adjustments
Warning: Detection function is not strictly monotonic!AIC= 6363.953
Fitting uniform key function with simple polynomial(2,4,6,8) adjustments
Warning: Detection function is not strictly monotonic!AIC= 6364.18
Uniform key function with simple polynomial(2,4,6) adjustments selected.
Warning: Detection function is not strictly monotonic!
Dentre as combinaçÔes de termos de ajustes para a função chave de distribuição uniforme, o Distance selecionou o modelo uniforme com ajuste polinomial simples, com as ordens 2, 4 e 6. Ele mantém esse modelo, e descarta os demais. Os Warnings indicando que a função de detecção não é estritamente monotÎnica avisam que os dados não foram constrangidos para a monotonicidade. Isso porque o uso de termos de ajustes, especialmente de ordens acima de 2, podem levar à perda da monotonidade (a curva pode se tornar crescente em algum momento, o que não é desejado). à preciso avaliar se a falta desse constragimento levou efetivamente à perda da monotonicidade ao olhar os gråficos de ajuste dos modelos.
# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutia_tap_arap_hn <- cutia_tap_arap |>
ajustar_modelos_Distance(
funcao_chave = "hn",
truncamento = "10%")
Fitting half-normal key function
AIC= 6375.771
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 6375.771
Fitting half-normal key function with cosine(2) adjustments
AIC= 6349.7
Fitting half-normal key function with cosine(2,3) adjustments
Warning: Detection function is not strictly monotonic!AIC= 6321.849
Fitting half-normal key function with cosine(2,3,4) adjustments
Warning: Detection function is not strictly monotonic!AIC= 6293.72
Fitting half-normal key function with cosine(2,3,4,5) adjustments
Warning: Detection function is not strictly monotonic!AIC= 6282.535
Fitting half-normal key function with cosine(2,3,4,5,6) adjustments
Warning: Detection function is not strictly monotonic!AIC= 6220.852
Warning: Detection function is not strictly monotonic!Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 6375.771
Fitting half-normal key function with Hermite(4) adjustments
AIC= 6377.362
Half-normal key function selected.
Neste caso, o modelo selecionado pelo Distance foi o Half-normal sem nenhum termo de ajuste.
# ajustando a função de detecção hazard-rate para um truncamento de 10% dos dados
cutia_tap_arap_hr <- cutia_tap_arap |>
ajustar_modelos_Distance(
funcao_chave = "hr",
truncamento = "10%")
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 6048.452
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).Starting AIC adjustment term selection.
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 6048.452
Fitting hazard-rate key function with cosine(2) adjustments
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).Warning: Model fitting did not converge. Try different initial values or different model
Model failed to converge.
Hazard-rate key function selected.
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).Starting AIC adjustment term selection.
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 6048.452
Fitting hazard-rate key function with simple polynomial(4) adjustments
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).Warning: Model fitting did not converge. Try different initial values or different model
Model failed to converge.
Hazard-rate key function selected.
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).
Aqui o melhor modelo selecionado pelo Distance foi o
Hazard-rate sem os termos de ajuste. Nesse caso, também hå um
warning para o problema na distribuição dos dados, que
apresentam um pico prĂłximo a distĂąncia zero e nĂŁo sĂŁo bem ajustados pelo
modelo hazard-hate.
Para comparar os modelos Ă© preciso avaliar trĂȘs critĂ©rios: AIC,
ajuste e forma das funçÔes nos gråficos e bondade de ajuste. O pacote
Distance possui a função summarize_ds_models
que gera uma tabela com os modelos para comparação de alguns parùmetros:
a primeira coluna Model, indica as funçÔes chaves e
respectivos termos de ajuste; a coluna Formula
apresenta as covariĂĄveis, quando incluĂdas no modelo, ou ~ 1, quando nĂŁo
hĂĄ covariĂĄveis; C-vM p-value vai apresentar os valores
de p para o teste de bondade de ajuste de Cramér-von Mises; \(\hat{P_a}\) apresenta a probalidade de
deteção global estimada para cada modelo; se(\(\hat{P_a}\)) apresenta o erro padrão para
as estimativas de probabilidade de detecção; e \(\Delta\)AIC apresenta os valores de
diferença entre os AICâs de modelos subsequentes.
fluxo1_selecao_funcao_deteccao_termo_ajuste <- selecionar_funcao_deteccao_termo_ajuste(
cutia_tap_arap_hn$`Sem termo`,
cutia_tap_arap_hn$Cosseno,
cutia_tap_arap_hn$`Hermite polinomial`,
cutia_tap_arap_hr$`Sem termo`,
cutia_tap_arap_hr$Cosseno,
cutia_tap_arap_hr$`Polinomial simples`,
cutia_tap_arap_unif$Cosseno,
cutia_tap_arap_unif$`Polinomial simples`
)
fluxo1_selecao_funcao_deteccao_termo_ajuste
Dentre os modelos testados, o que apresentou melhor valor de ajuste e AIC foi o hazard-rate. O ajuste do Cramér-von Mises foi consideravelmente maior que os demais (para esse tipo de teste, quanto maior o valor de p, melhor o ajuste), assim como as diferenças no delta AIC foram bastante elevadas.
# gerar uma lista com os modelos selecionados ordenados do melhor para o pior modelo
fluxo1_modelos_selecionados <- gerar_lista_modelos_selecionados(
cutia_tap_arap_hr$`Sem termo`,
cutia_tap_arap_unif$`Cosseno`,
cutia_tap_arap_hn$`Cosseno`,
cutia_tap_arap_unif$`Polinomial simples`,
cutia_tap_arap_hn$`Sem termo`,
nome_modelos_selecionados = fluxo1_selecao_funcao_deteccao_termo_ajuste
)
# plotar a probabilidade de detecção observada (barras) e a esperada (linhas e pontos)
plotar_funcao_deteccao_modelos_selecionados(fluxo1_modelos_selecionados)
$`Hazard-rate`
NULL
$`Half-normal with cosine adjustment terms of order 2,3,4,5,6`
NULL
$`Uniform with cosine adjustment terms of order 1,2,3,4,5`
NULL
$`Uniform with simple polynomial adjustment terms of order 2,4,6`
NULL
$`Half-normal`
NULL
Olhando para os histogramas com modelos ajustados, Ă© possĂvel observar o efeito do acĂșmulo de observaçÔes prĂłximo a zero. O modelo com a função chave hazard-hate sem termos de ajuste, apesar de ter apresentado o melhor valor de ajuste pelo CramĂ©r-von Mises e o melhor valor de AIC, apresentou dois problemas. As probalidades de deteção estimadas por intevalo de distĂąncia (barras verdes), ficaram muito baixas. AlĂ©m disso, a curva da função de deteção apresenta pico na distĂąncia prĂłxima a zero, decaindo rapidamente e se aproximando de zero ao longo do eixo das distĂŁncias. Todos os outros quatro modelos tiveram ajuste e AIC bastante inferiores ao hazard-hate. Entretanto as curvas estĂŁo relativamente melhores. As curvas do segundo e terceiro modelo, uniforme com ajuste cosseno e half-normal com ajuste cosseno, respectivamente, tendem Ă perda de monotonicidade. As duas Ășltimas curvas, para os modelos uniforme com ajuste polinomial simples e half-normal sem ajuste, nĂŁo perdem a monotonicidade. De forma geral, as probabilidades de detecção nĂŁo tĂȘm um bom ajuste abaixo da curva, e nĂŁo apresentam um decaimento gradual com a distĂąncia. Esses sĂŁo problemas inerentes Ă distribuição dos dados.
bondade_ajuste_fluxo1 <- testar_bondade_ajuste(
fluxo1_modelos_selecionados,
plot = TRUE,
chisq = TRUE,
intervalos_distancia = NULL
)
bondade_ajuste_fluxo1
Aqui são gerados Q-Q plots que permitem avaliar a qualidade do ajuste dos modelos. E também uma tabela com os resultados do Carmér-von Mises, onde W é o valor do teste e p seu valor de significùncia. Nesse caso, quanto maior o valor de p, melhor o ajuste do modelo.
Aqui, sĂŁo resumidos os dados de taxa de encontro, abundĂąncia e densidade em trĂȘs tabelas.
# gerar resultados abundùncia e detecção
fluxo1_caracteristicas_esforco_abundancia_deteccao <- gerar_resultados_Distance(
dados = fluxo1_modelos_selecionados,
resultado_selecao_modelos = fluxo1_selecao_funcao_deteccao_termo_ajuste,
tipo_de_resultado = "abundancia",
estratificacao = FALSE
)
fluxo1_caracteristicas_esforco_abundancia_deteccao
# gerar resultados densidade e coeficiente de variação
fluxo1_caracteristicas_densidade <- gerar_resultados_Distance(
dados = fluxo1_modelos_selecionados,
resultado_selecao_modelos = fluxo1_selecao_funcao_deteccao_termo_ajuste,
tipo_de_resultado = "densidade",
estratificacao = FALSE
)
fluxo1_caracteristicas_densidade
cutia_tap_arap_sem_repeticao <- filtrar_dados(
nome_ucs = "resex_tapajos_arapiuns",
nome_sps = "dasyprocta_croconota",
validacao_obs = "especie"
) |>
transformar_dados_formato_Distance(amostras_repetidas = FALSE)
cutia_tap_arap_sem_repeticao
cutia_tap_arap_sem_repeticao |>
tidyr::drop_na(distance) |>
plotar_distribuicao_distancia_interativo(largura_caixa = 1)
Warning: Continuous y aesthetic
âč did you forget `aes(group = ...)`?
# conduz a selecao da melhor distancia de truncamento a partir do ajsute de modelos com funcao de deteccao half-normal sem termos de ajuste
cutia_tap_arap_sem_repeticao_dist_trunc <- cutia_tap_arap_sem_repeticao |>
selecionar_distancia_truncamento()
Fitting half-normal key function
AIC= 190.812
Fitting half-normal key function
AIC= 200.849
Fitting half-normal key function
AIC= 232.199
Fitting half-normal key function
AIC= 271.27
Fitting half-normal key function
AIC= 275.398
cutia_tap_arap_sem_repeticao_dist_trunc$selecao
plotar_funcao_deteccao_selecao_distancia_truncamento(cutia_tap_arap_sem_repeticao_dist_trunc)
$`25%`
NULL
$`20%`
NULL
$`15%`
NULL
$`10%`
NULL
$`5%`
NULL
# ajustando a função de detecção uniforme para um truncamento de 10% dos dados
cutia_tap_arap_sem_repeticao_unif <- cutia_tap_arap_sem_repeticao |>
ajustar_modelos_Distance(
funcao_chave = "unif",
termos_ajuste = "cos",
truncamento = "10%")
Starting AIC adjustment term selection.
Fitting uniform key function
AIC= 270.805
Fitting uniform key function with cosine(1) adjustments
AIC= 270.793
Fitting uniform key function with cosine(1,2) adjustments
AIC= 272.786
Uniform key function with cosine(1) adjustments selected.
# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutia_tap_arap_sem_repeticao_hn <- cutia_tap_arap_sem_repeticao |>
ajustar_modelos_Distance(
funcao_chave = "hn",
truncamento = "10%")
Fitting half-normal key function
AIC= 271.27
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 271.27
Fitting half-normal key function with cosine(2) adjustments
AIC= 273.177
Half-normal key function selected.
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 271.27
Fitting half-normal key function with Hermite(4) adjustments
AIC= 273.247
Half-normal key function selected.
# ajustando a função de detecção hazard-rate para um truncamento de 10% dos dados
cutia_tap_arap_sem_repeticao_hr <- cutia_tap_arap_sem_repeticao |>
ajustar_modelos_Distance(
funcao_chave = "hr",
truncamento = "10%")
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 273.379
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).Starting AIC adjustment term selection.
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 273.379
Fitting hazard-rate key function with cosine(2) adjustments
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 275.348
Hazard-rate key function selected.
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).Starting AIC adjustment term selection.
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 273.379
Fitting hazard-rate key function with simple polynomial(4) adjustments
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 277.333
Hazard-rate key function selected.
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).
fluxo2_lista_modelos_ajustados <- list(
cutia_tap_arap_sem_repeticao_hn,
cutia_tap_arap_sem_repeticao_hr,
cutia_tap_arap_sem_repeticao_unif
)
fluxo2_selecao_funcao_deteccao_termo_ajuste <- selecionar_funcao_deteccao_termo_ajuste(
cutia_tap_arap_sem_repeticao_hn$`Sem termo`,
cutia_tap_arap_sem_repeticao_hn$Cosseno,
cutia_tap_arap_sem_repeticao_hn$`Hermite polinomial`,
cutia_tap_arap_sem_repeticao_hr$`Sem termo`,
cutia_tap_arap_sem_repeticao_hr$Cosseno,
cutia_tap_arap_sem_repeticao_hr$`Polinomial simples`,
cutia_tap_arap_sem_repeticao_unif
)
fluxo2_selecao_funcao_deteccao_termo_ajuste
# plotar a probabilidade de detecção observada (barras) e a esperada (linhas e pontos)
plotar_funcao_deteccao_modelos_selecionados(fluxo2_modelos_selecionados)
$`Uniform with cosine adjustment term of order 1`
NULL
$`Half-normal`
NULL
$`Hazard-rate`
NULL
bondade_ajuste_fluxo2 <- testar_bondade_ajuste(
fluxo2_modelos_selecionados,
plot = TRUE,
chisq = TRUE,
intervalos_distancia = NULL
)
bondade_ajuste_fluxo2
# gera resultados ĂĄrea de estudo e taxa de encontro
fluxo2_caracteristicas_area_estudo_taxa_encontro <- gerar_resultados_Distance(
dados = fluxo2_modelos_selecionados,
resultado_selecao_modelos = fluxo2_selecao_funcao_deteccao_termo_ajuste,
tipo_de_resultado = "area_estudo",
estratificacao = FALSE
)
fluxo2_caracteristicas_area_estudo_taxa_encontro
Aqui vamos partir do mesmo conjunto de dados do Fluxo 1
(cutia_tap_arap), com todas as repetiçÔes, mas vamos
agrupar as distĂąncias em intervalos. Vamos usar o mesmo valor de
truncamento, removendo 10% das observaçÔes nas maiores distùncias, o que
significa que aproveitaremos as observaçÔes feitas até 15m de distùncia
do observador.
O histograma interativo estĂĄ disponĂvel no aplicativo em Shiny
app_distancia_interativo.Rem
piper3d_monitora_florestal\apps.
Aqui, plotamos quatro histogramas com binagens diferentes, para observar o efeito de agrupar os dados sobre as distribuiçÔes das frequĂȘncias de observaçÔes nos histogramas.
cutia_tap_arap |>
tidyr::drop_na(distance) |>
plotar_distribuicao_distancia_interativo(largura_caixa = 1)
Warning: Continuous y aesthetic
âč did you forget `aes(group = ...)`?
cutia_tap_arap |>
tidyr::drop_na(distance) |>
plotar_distribuicao_distancia_interativo(largura_caixa = 2)
Warning: Continuous y aesthetic
âč did you forget `aes(group = ...)`?
cutia_tap_arap |>
tidyr::drop_na(distance) |>
plotar_distribuicao_distancia_interativo(largura_caixa = 3)
Warning: Continuous y aesthetic
âč did you forget `aes(group = ...)`?
cutia_tap_arap |>
tidyr::drop_na(distance) |>
plotar_distribuicao_distancia_interativo(largura_caixa = 5)
Warning: Continuous y aesthetic
âč did you forget `aes(group = ...)`?
Ă importante ressaltar que o valor mĂĄximo para categorização dos dados nĂŁo deve utltrapassar o valor de truncagem. Caso contrĂĄrio, nĂŁo serĂĄ possĂvel ajustar os modelos aos dados.
cutia_tap_arap_bin1 <- cutia_tap_arap |>
definir_intervalos_distancia(
intervalos_distancia = seq(
from = 0,
to = 15,
by = 1.5
)
)
Warning: Some distances were outside bins and have been removed.
cutia_tap_arap_bin2 <- cutia_tap_arap |>
definir_intervalos_distancia(
intervalos_distancia = c(
0,
seq(
from = 1,
to = 15,
by = 1.4
)
)
)
Warning: Some distances were outside bins and have been removed.
cutia_tap_arap_bin3 <- cutia_tap_arap |>
definir_intervalos_distancia(
intervalos_distancia = seq(
from = 0,
to = 15,
by = 2.5
)
)
Warning: Some distances were outside bins and have been removed.
Primeira Binagem
Aqui, por conta da binagem, o truncamento deve ser expresso em distùncia. Para os dados que estamos trabalhando, o corte de 10% das observaçÔes mais distantes truncam os dados em 15m.
cutia_tap_arap_bin1_unif <- cutia_tap_arap_bin1 |>
ajustar_modelos_Distance(
funcao_chave = "unif",
termos_ajuste = "cos",
truncamento = 15)
Columns "distbegin" and "distend" in data: performing a binned analysis...
Starting AIC adjustment term selection.
Fitting uniform key function
AIC= 5507.784
Fitting uniform key function with cosine(1) adjustments
AIC= 5294.147
Fitting uniform key function with cosine(1,2) adjustments
AIC= 5290.028
Fitting uniform key function with cosine(1,2,3) adjustments
Warning: Detection function is not strictly monotonic!AIC= 5257.803
Fitting uniform key function with cosine(1,2,3,4) adjustments
Warning: Detection function is not strictly monotonic!AIC= 5237.861
Fitting uniform key function with cosine(1,2,3,4,5) adjustments
Warning: Detection function is not strictly monotonic!AIC= 5239.783
Uniform key function with cosine(1,2,3,4) adjustments selected.
Warning: Detection function is not strictly monotonic!
Segunda binagem
cutia_tap_arap_bin2_unif <- cutia_tap_arap_bin2 |>
ajustar_modelos_Distance(
funcao_chave = "unif",
termos_ajuste = "cos",
truncamento = 15)
Columns "distbegin" and "distend" in data: performing a binned analysis...
Starting AIC adjustment term selection.
Fitting uniform key function
AIC= 5892.194
Fitting uniform key function with cosine(1) adjustments
AIC= 5692.195
Fitting uniform key function with cosine(1,2) adjustments
AIC= 5683.645
Fitting uniform key function with cosine(1,2,3) adjustments
Warning: Detection function is not strictly monotonic!AIC= 5648.379
Fitting uniform key function with cosine(1,2,3,4) adjustments
Warning: Detection function is not strictly monotonic!AIC= 5630.214
Fitting uniform key function with cosine(1,2,3,4,5) adjustments
Warning: Detection function is not strictly monotonic!AIC= 5617.709
Warning: Detection function is not strictly monotonic!
Terceira binagem
cutia_tap_arap_bin3_unif <- cutia_tap_arap_bin3 |>
ajustar_modelos_Distance(
funcao_chave = "unif",
termos_ajuste = "cos",
truncamento = 15)
Columns "distbegin" and "distend" in data: performing a binned analysis...
Starting AIC adjustment term selection.
Fitting uniform key function
AIC= 4285.889
Fitting uniform key function with cosine(1) adjustments
AIC= 4053.818
Fitting uniform key function with cosine(1,2) adjustments
AIC= 4054.276
Uniform key function with cosine(1) adjustments selected.
Primeira binagem
cutia_tap_arap_bin1_hn <- cutia_tap_arap_bin1 |>
ajustar_modelos_Distance(
funcao_chave = "hn",
truncamento = 15)
Columns "distbegin" and "distend" in data: performing a binned analysis...
Fitting half-normal key function
AIC= 5302.34
Columns "distbegin" and "distend" in data: performing a binned analysis...
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 5302.34
Fitting half-normal key function with cosine(2) adjustments
AIC= 5278.289
Fitting half-normal key function with cosine(2,3) adjustments
Warning: Detection function is not strictly monotonic!AIC= 5251.854
Fitting half-normal key function with cosine(2,3,4) adjustments
Warning: Detection function is not strictly monotonic!AIC= 5234.791
Fitting half-normal key function with cosine(2,3,4,5) adjustments
Warning: Detection function is not strictly monotonic!AIC= 5226.873
Fitting half-normal key function with cosine(2,3,4,5,6) adjustments
Warning: Model fitting did not converge. Try different initial values or different model
Model failed to converge.
Half-normal key function with cosine(2,3,4,5) adjustments selected.
Warning: Detection function is not strictly monotonic!Columns "distbegin" and "distend" in data: performing a binned analysis...
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 5302.34
Fitting half-normal key function with Hermite(4) adjustments
AIC= 5304.025
Half-normal key function selected.
Segunda binagem
cutia_tap_arap_bin2_hn <- cutia_tap_arap_bin2 |>
ajustar_modelos_Distance(
funcao_chave = "hn",
truncamento = 15)
Columns "distbegin" and "distend" in data: performing a binned analysis...
Fitting half-normal key function
AIC= 5701.235
Columns "distbegin" and "distend" in data: performing a binned analysis...
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 5701.235
Fitting half-normal key function with cosine(2) adjustments
AIC= 5667.729
Fitting half-normal key function with cosine(2,3) adjustments
Warning: Detection function is not strictly monotonic!AIC= 5643.501
Fitting half-normal key function with cosine(2,3,4) adjustments
Warning: Detection function is not strictly monotonic!AIC= 7183.526
Half-normal key function with cosine(2,3) adjustments selected.
Warning: Detection function is not strictly monotonic!Columns "distbegin" and "distend" in data: performing a binned analysis...
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 5701.235
Fitting half-normal key function with Hermite(4) adjustments
AIC= 5703.009
Half-normal key function selected.
Terceira binagem
cutia_tap_arap_bin3_hn <- cutia_tap_arap_bin3 |>
ajustar_modelos_Distance(
funcao_chave = "hn",
truncamento = 15)
Columns "distbegin" and "distend" in data: performing a binned analysis...
Fitting half-normal key function
AIC= 4057.575
Columns "distbegin" and "distend" in data: performing a binned analysis...
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 4057.575
Fitting half-normal key function with cosine(2) adjustments
AIC= 4048.794
Fitting half-normal key function with cosine(2,3) adjustments
AIC= 4027.813
Fitting half-normal key function with cosine(2,3,4) adjustments
Warning: Detection function is not strictly monotonic!AIC= 4018.985
Fitting half-normal key function with cosine(2,3,4,5) adjustments
Warning: Detection function is not strictly monotonic!AIC= 4154.212
Half-normal key function with cosine(2,3,4) adjustments selected.
Warning: Detection function is not strictly monotonic!Columns "distbegin" and "distend" in data: performing a binned analysis...
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 4057.575
Fitting half-normal key function with Hermite(4) adjustments
AIC= 4059.398
Half-normal key function selected.
Primeira binagem
cutia_tap_arap_bin1_hr <- cutia_tap_arap_bin1 |>
ajustar_modelos_Distance(
funcao_chave = "hr",
truncamento = 15)
Columns "distbegin" and "distend" in data: performing a binned analysis...
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 5248.75
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).Columns "distbegin" and "distend" in data: performing a binned analysis...
Starting AIC adjustment term selection.
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 5248.75
Fitting hazard-rate key function with cosine(2) adjustments
Warning: Detection function is not strictly monotonic!AIC= 5270.746
Hazard-rate key function selected.
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).Columns "distbegin" and "distend" in data: performing a binned analysis...
Starting AIC adjustment term selection.
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 5248.75
Fitting hazard-rate key function with simple polynomial(4) adjustments
AIC= 5272.362
Hazard-rate key function selected.
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).
Segunda binagem
cutia_tap_arap_bin2_hr <- cutia_tap_arap_bin2 |>
ajustar_modelos_Distance(
funcao_chave = "hr",
truncamento = 15)
Columns "distbegin" and "distend" in data: performing a binned analysis...
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 5624.367
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).Columns "distbegin" and "distend" in data: performing a binned analysis...
Starting AIC adjustment term selection.
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 5624.367
Fitting hazard-rate key function with cosine(2) adjustments
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).Warning: Model fitting did not converge. Try different initial values or different model
Model failed to converge.
Hazard-rate key function selected.
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).Columns "distbegin" and "distend" in data: performing a binned analysis...
Starting AIC adjustment term selection.
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 5624.367
Fitting hazard-rate key function with simple polynomial(4) adjustments
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).Warning: Model fitting did not converge. Try different initial values or different model
Model failed to converge.
Hazard-rate key function selected.
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).
Terceira binagem
cutia_tap_arap_bin3_hr <- cutia_tap_arap_bin3 |>
ajustar_modelos_Distance(
funcao_chave = "hr",
truncamento = 15)
Columns "distbegin" and "distend" in data: performing a binned analysis...
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 4042.87
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).Columns "distbegin" and "distend" in data: performing a binned analysis...
Starting AIC adjustment term selection.
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 4042.87
Fitting hazard-rate key function with cosine(2) adjustments
AIC= 4039.502
Fitting hazard-rate key function with cosine(2,3) adjustments
Warning: Detection function is not strictly monotonic!AIC= 4026.363
Fitting hazard-rate key function with cosine(2,3,4) adjustments
Warning: Detection function is not strictly monotonic!AIC= 4021.608
Fitting hazard-rate key function with cosine(2,3,4,5) adjustments
Error in ddf.ds(model = dsmodel, data, meta.data = meta.data, control = control, :
Number of parameters to estimate exceed number of distance bins minus 1
Error in model fitting, returning: hazard-rate key function with cosine(2,3,4) adjustments
Error: Error in ddf.ds(model = dsmodel, data, meta.data = meta.data, control = control, :
Number of parameters to estimate exceed number of distance bins minus 1
Warning: Detection function is not strictly monotonic!Columns "distbegin" and "distend" in data: performing a binned analysis...
Starting AIC adjustment term selection.
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 4042.87
Fitting hazard-rate key function with simple polynomial(4) adjustments
AIC= 4042.589
Fitting hazard-rate key function with simple polynomial(4,6) adjustments
Warning: Parameters or bounds appear to have different scalings.
This can cause poor performance in optimization.
It is important for derivative free methods like BOBYQA, UOBYQA, NEWUOA.Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 4044.558
Hazard-rate key function with simple polynomial(4) adjustments selected.
fluxo3.1_selecao_funcao_deteccao_termo_ajuste <- selecionar_funcao_deteccao_termo_ajuste(
cutia_tap_arap_bin1_unif,
cutia_tap_arap_bin1_hn$`Sem termo`,
cutia_tap_arap_bin1_hn$Cosseno,
cutia_tap_arap_bin1_hn$`Hermite polinomial`,
cutia_tap_arap_bin1_hr$`Sem termo`,
cutia_tap_arap_bin1_hr$Cosseno,
cutia_tap_arap_bin1_hr$`Polinomial simples`,
distancia_categorizada = TRUE
)
fluxo3.1_selecao_funcao_deteccao_termo_ajuste
NA
fluxo3.2_selecao_funcao_deteccao_termo_ajuste <- selecionar_funcao_deteccao_termo_ajuste(
cutia_tap_arap_bin2_unif,
cutia_tap_arap_bin2_hn$`Sem termo`,
cutia_tap_arap_bin2_hn$Cosseno,
cutia_tap_arap_bin2_hn$`Hermite polinomial`,
cutia_tap_arap_bin2_hr$`Sem termo`,
cutia_tap_arap_bin2_hr$Cosseno,
cutia_tap_arap_bin2_hr$`Polinomial simples`,
distancia_categorizada = TRUE
)
fluxo3.2_selecao_funcao_deteccao_termo_ajuste
fluxo3.3_selecao_funcao_deteccao_termo_ajuste <- selecionar_funcao_deteccao_termo_ajuste(
cutia_tap_arap_bin3_unif,
cutia_tap_arap_bin3_hn$`Sem termo`,
cutia_tap_arap_bin3_hn$Cosseno,
cutia_tap_arap_bin3_hn$`Hermite polinomial`,
cutia_tap_arap_bin3_hr$`Sem termo`,
cutia_tap_arap_bin3_hr$Cosseno,
cutia_tap_arap_bin3_hr$`Polinomial simples`,
distancia_categorizada = TRUE
)
fluxo3.3_selecao_funcao_deteccao_termo_ajuste
Primeira binagem
# plotar a probabilidade de detecção observada (barras) e a esperada (linhas e pontos)
plotar_funcao_deteccao_modelos_selecionados(
fluxo3.1_modelos_selecionados
)
$`Half-normal with cosine adjustment terms of order 2,3,4,5`
NULL
$`Uniform with cosine adjustment terms of order 1,2,3,4`
NULL
$`Hazard-rate`
NULL
$`Half-normal`
NULL
Segunda binagem
# plotar a probabilidade de detecção observada (barras) e a esperada (linhas e pontos)
plotar_funcao_deteccao_modelos_selecionados(fluxo3.2_modelos_selecionados)
$`Uniform with cosine adjustment terms of order 1,2,3,4,5`
NULL
$`Hazard-rate`
NULL
$`Half-normal with cosine adjustment terms of order 2,3`
NULL
$`Half-normal`
NULL
Terceira binagem
# Gråficos de ajuste das funçÔes de deteção às probabilidades de deteção
fluxo3.3_modelos_selecionados <- gerar_lista_modelos_selecionados(
cutia_tap_arap_bin3_hn$`Cosseno`,
cutia_tap_arap_bin3_hr$Cosseno,
cutia_tap_arap_bin3_hr$`Polinomial simples`,
cutia_tap_arap_bin3_hr$`Sem termo`,
cutia_tap_arap_bin3_unif,
cutia_tap_arap_bin3_hn$`Sem termo`,
nome_modelos_selecionados = fluxo3.3_selecao_funcao_deteccao_termo_ajuste
)
# plotar a probabilidade de detecção observada (barras) e a esperada (linhas e pontos)
plotar_funcao_deteccao_modelos_selecionados(fluxo3.3_modelos_selecionados)
$`Half-normal with cosine adjustment terms of order 2,3,4`
NULL
$`Hazard-rate with cosine adjustment terms of order 2,3,4`
NULL
$`Hazard-rate with simple polynomial adjustment term of order 4`
NULL
$`Hazard-rate`
NULL
$`Uniform with cosine adjustment term of order 1`
NULL
$`Half-normal`
NULL
Primeira binagem
bondade_ajuste_fluxo3.1 <- testar_bondade_ajuste(fluxo3.1_modelos_selecionados,
plot = TRUE,
chisq = TRUE,
intervalos_distancia = seq(
from = 0,
to = 15,
by = 1.5
)
)
bondade_ajuste_fluxo3.1
Segunda binagem
bondade_ajuste_fluxo3.2 <- testar_bondade_ajuste(fluxo3.2_modelos_selecionados,
plot = TRUE,
chisq = TRUE,
intervalos_distancia =
c(0, seq(1, 15, 1.4))
)
bondade_ajuste_fluxo3.2
$`Uniform with cosine adjustment terms of order 1,2,3,4,5`
Goodness of fit results for ddf object
Chi-square tests
P = 0 with 5 degrees of freedom
$`Hazard-rate`
Goodness of fit results for ddf object
Chi-square tests
P = 0 with 8 degrees of freedom
$`Half-normal with cosine adjustment terms of order 2,3`
Goodness of fit results for ddf object
Chi-square tests
P = 0 with 7 degrees of freedom
$`Half-normal`
Goodness of fit results for ddf object
Chi-square tests
P = 0 with 9 degrees of freedom
Terceira binagem
bondade_ajuste_fluxo3.3 <- testar_bondade_ajuste(fluxo3.3_modelos_selecionados,
plot = TRUE,
chisq = TRUE,
intervalos_distancia = seq(
from = 0,
to = 15,
by = 2.5
)
)
bondade_ajuste_fluxo3.3
$`Half-normal with cosine adjustment terms of order 2,3,4`
Goodness of fit results for ddf object
Chi-square tests
P = 4.1621e-08 with 1 degrees of freedom
$`Hazard-rate with cosine adjustment terms of order 2,3,4`
Goodness of fit results for ddf object
Chi-square tests
No degrees of freedom for test
$`Hazard-rate with simple polynomial adjustment term of order 4`
Goodness of fit results for ddf object
Chi-square tests
P = 1.7697e-13 with 2 degrees of freedom
$`Hazard-rate`
Goodness of fit results for ddf object
Chi-square tests
P = 1.7675e-13 with 3 degrees of freedom
$`Uniform with cosine adjustment term of order 1`
Goodness of fit results for ddf object
Chi-square tests
P = 1.521e-14 with 4 degrees of freedom
$`Half-normal`
Goodness of fit results for ddf object
Chi-square tests
P = 3.4417e-15 with 4 degrees of freedom
Primeira binagem
# gerar resultados sobre a ĂĄrea, nĂșmero de detecçÔes, e taxa de encontro
fluxo3.1_caracteristicas_area_estudo_taxa_encontro <- fluxo3.1_modelos_selecionados |>
gerar_resultados_Distance(
resultado_selecao_modelos = fluxo3.1_selecao_funcao_deteccao_termo_ajuste,
tipo_de_resultado = "area_estudo"
)
fluxo3.1_caracteristicas_area_estudo_taxa_encontro
Segunda binagem
# gerar resultados sobre a ĂĄrea, nĂșmero de detecçÔes, e taxa de encontro
fluxo3.2_caracteristicas_area_estudo_taxa_encontro <- fluxo3.2_modelos_selecionados |>
gerar_resultados_Distance(
resultado_selecao_modelos = fluxo3.2_selecao_funcao_deteccao_termo_ajuste,
tipo_de_resultado = "area_estudo"
)
fluxo3.2_caracteristicas_area_estudo_taxa_encontro
Terceira binagem
# gerar resultados sobre a ĂĄrea, nĂșmero de detecçÔes, e taxa de encontro
fluxo3.3_caracteristicas_area_estudo_taxa_encontro <- fluxo3.3_modelos_selecionados |>
gerar_resultados_Distance(
resultado_selecao_modelos = fluxo3.3_selecao_funcao_deteccao_termo_ajuste,
tipo_de_resultado = "area_estudo"
)
fluxo3.3_caracteristicas_area_estudo_taxa_encontro
Primeira binagem
# gerar resultados sobre a abundĂąncia
fluxo3.1_caracteristicas_abundancia <- fluxo3.1_modelos_selecionados |>
gerar_resultados_Distance(
resultado_selecao_modelos = fluxo3.1_selecao_funcao_deteccao_termo_ajuste,
tipo_de_resultado = "abundancia"
)
fluxo3.1_caracteristicas_abundancia
Segunda binagem
# gerar resultados sobre a abundĂąncia
fluxo3.2_caracteristicas_abundancia <- fluxo3.2_modelos_selecionados |>
gerar_resultados_Distance(
resultado_selecao_modelos = fluxo3.2_selecao_funcao_deteccao_termo_ajuste,
tipo_de_resultado = "abundancia"
)
fluxo3.2_caracteristicas_abundancia
Terceira binagem
# gerar resultados sobre a abundĂąncia
fluxo3.3_caracteristicas_abundancia <- fluxo3.3_modelos_selecionados |>
gerar_resultados_Distance(
resultado_selecao_modelos = fluxo3.3_selecao_funcao_deteccao_termo_ajuste,
tipo_de_resultado = "abundancia"
)
fluxo3.3_caracteristicas_abundancia
Primeira binagem
# gerar resultados sobre a densidade
fluxo3.1_caracteristicas_densidade <- fluxo3.1_modelos_selecionados |>
gerar_resultados_Distance(
resultado_selecao_modelos = fluxo3.1_selecao_funcao_deteccao_termo_ajuste,
tipo_de_resultado = "densidade"
)
fluxo3.1_caracteristicas_densidade
Segunda binagem
# gerar resultados sobre a densidade
fluxo3.2_caracteristicas_densidade <- fluxo3.2_modelos_selecionados |>
gerar_resultados_Distance(
resultado_selecao_modelos = fluxo3.2_selecao_funcao_deteccao_termo_ajuste,
tipo_de_resultado = "densidade"
)
fluxo3.2_caracteristicas_densidade
Terceira binagem
# gerar resultados sobre a densidade
fluxo3.3_caracteristicas_densidade <- fluxo3.3_modelos_selecionados |>
gerar_resultados_Distance(
resultado_selecao_modelos = fluxo3.3_selecao_funcao_deteccao_termo_ajuste,
tipo_de_resultado = "densidade"
)
fluxo3.3_caracteristicas_densidade
Aqui vamos usar a abordagem do Fluxo 2, sem amostragens repetidas, para o ajuste de covariåveis. Vamos usar o tamanho do grupo (size) e tempo de denso percorrido até cada observação como exemplo de covariåveis.
Aqui vamos trabalhar com os dados filtrados, sem repetiçÔes. O nĂșmero de observaçÔes total foi de 55.
cutias_cov_distance |>
plotar_distribuicao_distancia_interativo(largura_caixa = 1)
Warning: Continuous y aesthetic
âč did you forget `aes(group = ...)`?Warning: Removed 2 rows containing missing values (`stat_boxplot()`).Warning: Removed 2 rows containing non-finite values (`stat_bin()`).
Para o uso de coveriåveis, podemos usar somente as distribuiçÔes half-normal ou hazard-rate, pois ambas possuem o parùmetro escalar (sigma) pelo qual o vetor das covariåveis serå multiplicado. Não é recomendåvel o uso de termos de ajuste com o uso de covariåveis pela grande chance de perda de monotonicidade nas curvas das funçÔes de detecção. Assim, vamos trabalhar com as seguintes combinaçÔes de modelos.
# ajustando a função de detecção half-normal, sem covariåvel, para um truncamento de 10% dos dados
cutias_cov_distance_hn <- cutias_cov_distance |>
ajustar_modelos_Distance(
funcao_chave = "hn",
truncamento = "10%"
)
Fitting half-normal key function
AIC= 271.27
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 271.27
Fitting half-normal key function with cosine(2) adjustments
AIC= 273.177
Half-normal key function selected.
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 271.27
Fitting half-normal key function with Hermite(4) adjustments
AIC= 273.247
Half-normal key function selected.
cutias_cov_distance_hn$`Sem termo`
Distance sampling analysis object
Detection function:
Half-normal key function
Estimated abundance in covered region: 60.37826
# ajustando a função de detecção half-normal, com tamanho do grupo como covariåvel, para um truncamento de 10% dos dados
cutias_cov_distance_hn_size <- cutias_cov_distance |>
ajustar_modelos_Distance(
funcao_chave = "hn",
truncamento = "10%",
formula = ~ size
)
Fitting half-normal key function
AIC= 271.57
cutias_cov_distance_hn_size
Distance sampling analysis object
Detection function:
Half-normal key function
Estimated abundance in covered region: 65.04594
# ajustando a função de detecção half-normal, com tamanho do grupo como covariåvel, para um truncamento de 10% dos dados
cutias_cov_distance_hn_size_time <- cutias_cov_distance |>
ajustar_modelos_Distance(
funcao_chave = "hn",
truncamento = "10%",
formula = ~ size + cense_time
)
Fitting half-normal key function
AIC= 270.876
cutias_cov_distance_hn_size_time
Distance sampling analysis object
Detection function:
Half-normal key function
Estimated abundance in covered region: 66.59063
cutias_cov_distance_hr <- cutias_cov_distance |>
ajustar_modelos_Distance(
funcao_chave = "hr",
truncamento = "10%"
)
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 273.379
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).Starting AIC adjustment term selection.
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 273.379
Fitting hazard-rate key function with cosine(2) adjustments
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 276.134
Hazard-rate key function selected.
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).Starting AIC adjustment term selection.
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 273.379
Fitting hazard-rate key function with simple polynomial(4) adjustments
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 277.333
Hazard-rate key function selected.
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).
cutias_cov_distance_hr$`Sem termo`
Distance sampling analysis object
Detection function:
Hazard-rate key function
Estimated abundance in covered region: 61.45591
# ajustando a função de detecção hazard-rate, com tamanho do grupo como covariåvel, para um truncamento de 10% dos dados
cutias_cov_distance_hr_size <- cutias_cov_distance |>
ajustar_modelos_Distance(
funcao_chave = "hr",
truncamento = "10%",
formula = ~ size
)
Fitting hazard-rate key function
AIC= 272.886
cutias_cov_distance_hr_size
Distance sampling analysis object
Detection function:
Hazard-rate key function
Estimated abundance in covered region: 59.06912
# ajustando a função de detecção hazard-rate, com tamanho do grupo como covariåvel, para um truncamento de 10% dos dados
cutias_cov_distance_hr_size_time <- cutias_cov_distance |>
ajustar_modelos_Distance(
funcao_chave = "hr",
truncamento = "10%",
formula = ~ size + cense_time
)
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 268.906
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).
cutias_cov_distance_hr_size_time
Distance sampling analysis object
Detection function:
Hazard-rate key function
Estimated abundance in covered region: 1099.396
Aqui, vamos selecionar somente os modelos sem termos de ajuste, com e sem covariĂĄveis.
cutias_cov_distance_melhor_modelo <-
selecionar_funcao_deteccao_termo_ajuste(
cutias_cov_distance_hn$`Sem termo`,
cutias_cov_distance_hn_size,
cutias_cov_distance_hn_size_time,
cutias_cov_distance_hr$`Sem termo`,
cutias_cov_distance_hr_size,
cutias_cov_distance_hr_size_time
)
cutias_cov_distance_melhor_modelo
NA
Observe que nesse caso as covariĂĄvies alteraram pouco o ajuste dos modelos.
Ainda estamos ajustando a função para poder gerar os gråficos dos modelos com covariåveis. A função criada para os gråficos ainda não comporta os dados de modelos com covariåveis.
modelos_cutias_cov_distance <-
gerar_lista_modelos_selecionados(
cutias_cov_distance_hr_size_time,
cutias_cov_distance_hn_size_time,
cutias_cov_distance_hn$`Sem termo`,
cutias_cov_distance_hn_size,
cutias_cov_distance_hr_size,
cutias_cov_distance_hr$`Sem termo`,
nome_modelos_selecionados = cutias_cov_distance_melhor_modelo
)
plotar_funcao_deteccao_modelos_selecionados(modelos_cutias_cov_distance)
$`Hazard-rate`
NULL
$`Half-normal`
NULL
$`Half-normal`
NULL
$`Half-normal`
NULL
$`Hazard-rate`
NULL
$`Hazard-rate`
NULL
Ainda estamos ajustando a função para poder gerar a tabela com os resultados do Cramér-von Mises e os gråficos dos modelos com covariåveis. A função criada para gerar tabela e os Q-Q plots ainda não comporta os dados de modelos com covariåveis.
testar_bondade_ajuste(
modelos_cutias_cov_distance,
plot = TRUE,
nboot = 100
)
NA
Para o uso de covariĂĄveis, as estimativas de abundĂąncia/densidade
devem ser feitas através do bootstrap (função bootdht do
Distance). Ainda estamos implementando o bootstrap em nosso fluxo de
estimativas de taxa de encontro, abundĂąncia e densidade.
gerar_resultados_Distance(
modelos_cutias_cov_distance,
cutias_cov_distance_melhor_modelo,
tipo_de_resultado = "area_estudo"
)
NA
gerar_resultados_Distance(
modelos_cutias_cov_distance,
cutias_cov_distance_melhor_modelo,
tipo_de_resultado = "abundancia"
)
NA
gerar_resultados_Distance(
modelos_cutias_cov_distance,
cutias_cov_distance_melhor_modelo,
tipo_de_resultado = "densidade"
)
NA
A estratificação dos dados a partir do pacote Distance para o R só é
possĂvel atravĂ©s da variĂĄvel Region.Label. Assim,
apresentamos um fluxo de estratificação utilizando ainda os dados da
cutia, Dasyprocta croconota, para mais de uma unidade de
conservação.
Na PARTE IV - Explorando e selecionando os dados para as anĂĄlises, filtramos os dados de Dasyprocta croconota. A espĂ©cie foi observada em quatro Unidades de Conservação, com os respectivos nĂșmeros de ocorrĂȘncia: Resex TapajĂłs-Arapiuns (n = 1395), Parna da Serra do Pardo (n = 257), Esec da Terra do Meio (n = 235), e Resex Riozinho do AnfrĂsio (n = 225). Em todas as UCs o nĂșmero de observaçÔes Ă© alto, de modo que incluĂmos todas as UCs na anĂĄlise de dados.
# filtrar dados das cutias para as quatro UCS onde ocorre:
cutias <- filtrar_dados(
nome_ucs = c(
"resex_tapajos_arapiuns",
"parna_da_serra_do_pardo",
"esec_da_terra_do_meio",
"resex_riozinho_do_anfrisio"
),
nome_sps = "dasyprocta_croconota",
validacao_obs = "especie"
)
cutias_distance <- transformar_dados_formato_Distance(
cutias,
amostras_repetidas = TRUE)
cutias_distance
NA
NA
Plotando o histograma para os dados globais.
cutias_distance |>
tidyr::drop_na(distance) |>
plotar_distribuicao_distancia_interativo(largura_caixa = 1)
Warning: Continuous y aesthetic
âč did you forget `aes(group = ...)`?
Plotando o histograma para cada uma das UCS
5.1.5.0.1.2.1 Resex TapajĂłs-Arapiuns
cutias_tap_distance <- filtrar_dados(
nome_ucs = "resex_tapajos_arapiuns",
nome_sps = "dasyprocta_croconota",
validacao_obs = "especie"
) |>
transformar_dados_formato_Distance(amostras_repetidas = TRUE)
cutias_tap_distance |>
tidyr::drop_na(distance) |>
plotar_distribuicao_distancia_interativo(largura_caixa = 1)
Warning: Continuous y aesthetic
âč did you forget `aes(group = ...)`?
5.1.5.0.1.2.2 Parna Serra do Pardo
cutias_par_distance <- filtrar_dados(
nome_ucs = "parna_da_serra_do_pardo",
nome_sps = "dasyprocta_croconota",
validacao_obs = "especie"
)|>
transformar_dados_formato_Distance(amostras_repetidas = TRUE)
cutias_par_distance |>
plotar_distribuicao_distancia_interativo(largura_caixa = 1)
Warning: Continuous y aesthetic
âč did you forget `aes(group = ...)`?
5.1.5.0.1.2.3 Esec da Terra do Meio
cutias_ter_distance <- filtrar_dados(
nome_ucs = "esec_da_terra_do_meio",
nome_sps = "dasyprocta_croconota",
validacao_obs = "especie"
) |>
transformar_dados_formato_Distance(amostras_repetidas = TRUE)
cutias_ter_distance |>
tidyr::drop_na(distance) |>
plotar_distribuicao_distancia_interativo(largura_caixa = 1)
Warning: Continuous y aesthetic
âč did you forget `aes(group = ...)`?
5.1.5.0.1.2.4 Resex Riozinho do AnfrĂsio
cutias_anf_distance <- filtrar_dados(
nome_ucs = "resex_riozinho_do_anfrisio",
nome_sps = "dasyprocta_croconota",
validacao_obs = "especie"
) |>
transformar_dados_formato_Distance(amostras_repetidas = TRUE)
cutias_anf_distance |>
plotar_distribuicao_distancia_interativo(largura_caixa = 1)
Warning: Continuous y aesthetic
âč did you forget `aes(group = ...)`?
Para ajustar os modelos aos dados globais e estratificados, mantivemos a mesma distùncia de truncamento para os dados das cutias na Resex Tapajós-Arapiuns, de 10%, uma vez que a distrbuição dos dados é semelhante tanto nos dados globais como nas UCs analisadas.
# ajustando a função de detecção uniforme para um truncamento de 10% dos dados
cutias_distance_unif <- cutias_distance |>
ajustar_modelos_Distance(
funcao_chave = "unif",
truncamento = "10%")
Starting AIC adjustment term selection.
Fitting uniform key function
AIC= 10138.94
Fitting uniform key function with cosine(1) adjustments
AIC= 9859.72
Fitting uniform key function with cosine(1,2) adjustments
AIC= 9856.899
Fitting uniform key function with cosine(1,2,3) adjustments
Warning: Detection function is not strictly monotonic!AIC= 9789.559
Fitting uniform key function with cosine(1,2,3,4) adjustments
Warning: Detection function is not strictly monotonic!AIC= 9756.641
Fitting uniform key function with cosine(1,2,3,4,5) adjustments
Warning: Detection function is not strictly monotonic!AIC= 9735.379
Warning: Detection function is not strictly monotonic!Starting AIC adjustment term selection.
Fitting uniform key function
AIC= 10138.94
Fitting uniform key function with simple polynomial(2) adjustments
AIC= 9918.804
Fitting uniform key function with simple polynomial(2,4) adjustments
Warning: Detection function is not strictly monotonic!AIC= 9861.06
Fitting uniform key function with simple polynomial(2,4,6) adjustments
Warning: Detection function is not strictly monotonic!AIC= 9862.176
Uniform key function with simple polynomial(2,4) adjustments selected.
Warning: Detection function is not strictly monotonic!
# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutias_distance_hn <- cutias_distance |>
ajustar_modelos_Distance(
funcao_chave = "hn",
truncamento = "10%")
Fitting half-normal key function
AIC= 9878.263
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 9878.263
Fitting half-normal key function with cosine(2) adjustments
AIC= 9845.472
Fitting half-normal key function with cosine(2,3) adjustments
Warning: Detection function is not strictly monotonic!AIC= 9789.663
Fitting half-normal key function with cosine(2,3,4) adjustments
Warning: Detection function is not strictly monotonic!AIC= 9758.006
Fitting half-normal key function with cosine(2,3,4,5) adjustments
Warning: Detection function is not strictly monotonic!AIC= 9722.9
Fitting half-normal key function with cosine(2,3,4,5,6) adjustments
Warning: Detection function is not strictly monotonic!AIC= 9648.391
Warning: Detection function is not strictly monotonic!Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 9878.263
Fitting half-normal key function with Hermite(4) adjustments
AIC= 9879.673
Half-normal key function selected.
# ajustando a função de detecção hazard-rate para um truncamento de 10% dos dados
cutias_distance_hr <- cutias_distance |>
ajustar_modelos_Distance(
funcao_chave = "hr",
truncamento = "10%")
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 9427.867
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).Starting AIC adjustment term selection.
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 9427.867
Fitting hazard-rate key function with cosine(2) adjustments
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).Warning: Model fitting did not converge. Try different initial values or different model
Model failed to converge.
Hazard-rate key function selected.
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).Starting AIC adjustment term selection.
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 9427.867
Fitting hazard-rate key function with simple polynomial(4) adjustments
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).Warning: Model fitting did not converge. Try different initial values or different model
Model failed to converge.
Hazard-rate key function selected.
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).
melhor_modelo_cutias <- selecionar_funcao_deteccao_termo_ajuste(
cutias_distance_unif$Cosseno,
cutias_distance_unif$`Polinomial simples`,
cutias_distance_hn$`Sem termo`,
cutias_distance_hn$Cosseno,
cutias_distance_hn$`Hermite polinomial`,
cutias_distance_hr$`Sem termo`,
cutias_distance_hr$Cosseno,
cutias_distance_hr$`Polinomial simples`
)
melhor_modelo_cutias
modelos_cutias <- gerar_lista_modelos_selecionados(
cutias_distance_hr$`Sem termo`,
cutias_distance_hn$Cosseno,
cutias_distance_unif$Cosseno,
cutias_distance_unif$`Polinomial simples`,
cutias_distance_hn$`Sem termo`,
nome_modelos_selecionados = melhor_modelo_cutias
)
plotar_funcao_deteccao_modelos_selecionados(modelos_cutias)
$`Hazard-rate`
NULL
$`Half-normal with cosine adjustment terms of order 2,3,4,5,6`
NULL
$`Uniform with cosine adjustment terms of order 1,2,3,4,5`
NULL
$`Uniform with simple polynomial adjustment terms of order 2,4`
NULL
$`Half-normal`
NULL
#criar uma lista com os modelos selecionados, na ordem de seleção
testar_bondade_ajuste(
modelos_cutias,
plot = TRUE,
chisq = FALSE,
)
NA
Aqui são gerados Q-Q plots que permitem avaliar a qualidade do ajuste dos modelos. E também uma tabela com os resultados do Carmér-von Mises, onde W é o valor do teste e p seu valor de significùncia. Nesse caso, quanto maior o valor de p, melhor o ajuste do modelo.
Aqui, sĂŁo resumidos os dados de taxa de encontro, abundĂąncia e densidade em trĂȘs tabelas.
gerar_resultados_Distance(
dados = modelos_cutias,
resultado_selecao_modelos = melhor_modelo_cutias,
tipo_de_resultado = "area_estudo",
estratificacao = TRUE
)
gerar_resultados_Distance(
dados = modelos_cutias,
resultado_selecao_modelos = melhor_modelo_cutias,
tipo_de_resultado = "abundancia",
estratificacao = TRUE
)
NA
gerar_resultados_Distance(
dados = modelos_cutias,
resultado_selecao_modelos = melhor_modelo_cutias,
tipo_de_resultado = "densidade",
estratificacao = TRUE
)
NA
A redução no tamanho amostral geralmente faz com que os modelos para os dados globais tenham um ajuste melhor que os modelos ajustados aos estratos. Entretanto, para os dados do Monitora, considerando alguns ruĂdos amostrais sobre a distribuição dos dados, o excesso de repetiçÔes, resultados melhores de ajuste tĂȘm sido obtidos para conjutnos de dados menores.
Nas anålises anteriores, os parùmetros de ajuste dos modelos e valores de AIC foram gerados somente para os dados globais. Porém, as estimativas relacionadas a årea de estudo, abundùncia e densidade, foram geradas para cada estrato.
Um critério para avaliar se o ajuste das funçÔes para os dados estratificados foi melhor que para os dados globais é a comparação do somatório dos valores de AIC para cada estrato com o valor de AIC do modelo global. Se a soma dos valores de AIC dos estratos for menor que o AIC global, significa que o ajuste foi melhor para os dados estratificados.
Assim, escolhemos um dos modelos testados anteriormente para os dados globais, que foi o Half-normal. Escolhemos o segundo melhor modelo porque consideramos que o ajuste do Hazard-rate, apesar de apresentar os melhores valores de AIC e teste de ajuste de bondade, foi sensĂvel ao pico de observaçÔes prĂłximo a zero, substimando as estimativas de probabilidade de detecção. Assim, vamos comparar o AIC global para o modelo do tipo Half-normal com os AICs das funçÔes ajustadas para os dados de cada Unidade de Conservação.
5.1.5.0.5.1.1 Dados Globais
5.1.5.0.5.1.2 Resex TapajĂłs-Arapiuns
# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutias_tap_distance_hn <- cutias_tap_distance |>
ajustar_modelos_Distance(
funcao_chave = "hn",
termos_ajuste = "cos",
truncamento = "10%")
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 6375.771
Fitting half-normal key function with cosine(2) adjustments
AIC= 6349.7
Fitting half-normal key function with cosine(2,3) adjustments
Warning: Detection function is not strictly monotonic!AIC= 6321.849
Fitting half-normal key function with cosine(2,3,4) adjustments
Warning: Detection function is not strictly monotonic!AIC= 6293.72
Fitting half-normal key function with cosine(2,3,4,5) adjustments
Warning: Detection function is not strictly monotonic!AIC= 6282.536
Fitting half-normal key function with cosine(2,3,4,5,6) adjustments
Warning: Detection function is not strictly monotonic!AIC= 6220.851
Warning: Detection function is not strictly monotonic!
5.1.5.0.5.1.3 Resex TapajĂłs-Arapiuns
# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutias_tap_distance_hn <- cutias_tap_distance |>
ajustar_modelos_Distance(
funcao_chave = "hn",
termos_ajuste = "cos",
truncamento = "10%")
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 6375.771
Fitting half-normal key function with cosine(2) adjustments
AIC= 6349.7
Fitting half-normal key function with cosine(2,3) adjustments
Warning: Detection function is not strictly monotonic!AIC= 6321.849
Fitting half-normal key function with cosine(2,3,4) adjustments
Warning: Detection function is not strictly monotonic!AIC= 6293.72
Fitting half-normal key function with cosine(2,3,4,5) adjustments
Warning: Detection function is not strictly monotonic!AIC= 6282.534
Fitting half-normal key function with cosine(2,3,4,5,6) adjustments
Warning: Detection function is not strictly monotonic!AIC= 6587.824
Half-normal key function with cosine(2,3,4,5) adjustments selected.
Warning: Detection function is not strictly monotonic!
5.1.5.0.5.1.4 Parna Serra do Pardo
# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutias_par_distance_hn <- cutias_par_distance |>
ajustar_modelos_Distance(
funcao_chave = "hn",
termos_ajuste = "cos",
truncamento = "10%")
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 1150.254
Fitting half-normal key function with cosine(2) adjustments
AIC= 1143.402
Fitting half-normal key function with cosine(2,3) adjustments
AIC= 1152.485
Half-normal key function with cosine(2) adjustments selected.
5.1.5.0.5.1.5 Esec da Terra do Meio
# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutias_ter_distance_hn <- cutias_ter_distance |>
ajustar_modelos_Distance(
funcao_chave = "hn",
termos_ajuste = "cos",
truncamento = "10%")
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 1056.95
Fitting half-normal key function with cosine(2) adjustments
AIC= 1056.994
Half-normal key function selected.
5.1.5.0.5.1.6 Resex Riozinho do AnfrĂsio
# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutias_anf_distance_hn <- cutias_anf_distance |>
ajustar_modelos_Distance(
funcao_chave = "hn",
termos_ajuste = "cos",
truncamento = "10%")
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 1051.012
Fitting half-normal key function with cosine(2) adjustments
AIC= 1047.578
Fitting half-normal key function with cosine(2,3) adjustments
Warning: Detection function is not strictly monotonic!AIC= 1039.252
Fitting half-normal key function with cosine(2,3,4) adjustments
AIC= 1056.923
Half-normal key function with cosine(2,3) adjustments selected.
Warning: Detection function is not strictly monotonic!
modelo_cutias_estrat
$tabela_aics
$comparacao_aics
$comparacao_aics$AIC_global
[1] 9648.391
$comparacao_aics$AIC_locais
[1] 9522.139
modelos_cutias_estrat <- gerar_lista_modelos_selecionados(
cutias_distance_hn$Cosseno,
cutias_tap_distance_hn,
cutias_par_distance_hn,
cutias_ter_distance_hn,
cutias_anf_distance_hn,
nome_modelos_selecionados = modelo_cutias_estrat
)
plotar_funcao_deteccao_modelos_selecionados(modelos_cutias_estrat)
Para obter as estimativas anuais de densidade continuaremos utilizando a abordagem do Fluxo 2, com amostragens sem repetição.
Aqui vamos trabalhar com os dados filtrados, sem repetiçÔes. O nĂșmero de observaçÔes total foi de 55.
cutias_year <- filtrar_dados(
nome_ucs = "resex_tapajos_arapiuns",
nome_sps = "dasyprocta_croconota",
validacao_obs = "especie"
)
cutias_year_distance <- transformar_dados_formato_Distance(
cutias_year,
amostras_repetidas = FALSE)
cutias_year_distance
Plotando o histograma para os dados globais.
cutias_year_distance |>
tidyr::drop_na(distance) |>
plotar_distribuicao_distancia_interativo(largura_caixa = 1)
Warning: Continuous y aesthetic
âč did you forget `aes(group = ...)`?
Plotando o histograma para cada ano.
5.1.6.1.1.2.1 2014
cutia_2014 <- cutias_year_distance |>
dplyr::filter(year == 2014)
cutia_2014 |>
plotar_distribuicao_distancia_interativo(largura_caixa = 1)
Warning: Continuous y aesthetic
âč did you forget `aes(group = ...)`?
5.1.6.1.1.2.2 **2015*
cutia_2015 <- cutias_year_distance |>
dplyr::filter(year == 2015)
cutia_2015 |>
plotar_distribuicao_distancia_interativo(largura_caixa = 1)
Warning: Continuous y aesthetic
âč did you forget `aes(group = ...)`?
5.1.6.1.1.2.3 2016
cutia_2016 <- cutias_year_distance |>
dplyr::filter(year == 2016)
cutia_2016 |>
plotar_distribuicao_distancia_interativo(largura_caixa = 1)
Warning: Continuous y aesthetic
âč did you forget `aes(group = ...)`?
5.1.6.1.1.2.4 2017
cutia_2017 <- cutias_year_distance |>
dplyr::filter(year == 2017)
cutia_2017 |>
tidyr::drop_na(distance) |>
plotar_distribuicao_distancia_interativo(largura_caixa = 1)
Warning: Continuous y aesthetic
âč did you forget `aes(group = ...)`?
5.1.6.1.1.2.5 2018
cutia_2018 <- cutias_year_distance |>
dplyr::filter(year == 2018)
cutia_2018 |>
tidyr::drop_na(distance) |>
plotar_distribuicao_distancia_interativo(largura_caixa = 1)
Warning: Continuous y aesthetic
âč did you forget `aes(group = ...)`?
5.1.6.1.1.2.6 2019
cutia_2019 <- cutias_year_distance |>
dplyr::filter(year == 2019)
cutia_2019 |>
tidyr::drop_na(distance) |>
plotar_distribuicao_distancia_interativo(largura_caixa = 1)
Warning: Continuous y aesthetic
âč did you forget `aes(group = ...)`?
5.1.6.1.1.2.7 2020
cutia_2020 <- cutias_year_distance |>
dplyr::filter(year == 2020)
cutia_2020|>
tidyr::drop_na(distance) |>
plotar_distribuicao_distancia_interativo(largura_caixa = 1)
Warning: Continuous y aesthetic
âč did you forget `aes(group = ...)`?
5.1.6.1.1.2.8 2021
cutia_2021 <- cutias_year_distance |>
dplyr::filter(year == 2021)
cutia_2021 |>
tidyr::drop_na(distance) |>
plotar_distribuicao_distancia_interativo(largura_caixa = 1)
Warning: Continuous y aesthetic
âč did you forget `aes(group = ...)`?
Para ajustar os modelos aos dados globais e estratificados, mantivemos a mesma distùncia de truncamento para os dados das cutias na Resex Tapajós-Arapiuns, de 10%, uma vez que a distrbuição dos dados é semelhante tanto nos dados globais como nas UCs analisadas.
# ajustando a função de detecção uniforme para um truncamento de 10% dos dados
cutias_distance_unif_year <- cutias_year_distance |>
dplyr::filter(year != 2014) |>
dplyr::mutate(Region.Label = year) |>
ajustar_modelos_Distance(
funcao_chave = "unif",
truncamento = "10%")
Starting AIC adjustment term selection.
Fitting uniform key function
AIC= 2599.728
Fitting uniform key function with cosine(1) adjustments
AIC= 2514.283
Fitting uniform key function with cosine(1,2) adjustments
AIC= 2515.63
Uniform key function with cosine(1) adjustments selected.
Starting AIC adjustment term selection.
Fitting uniform key function
AIC= 2599.728
Fitting uniform key function with simple polynomial(2) adjustments
AIC= 2536.817
Fitting uniform key function with simple polynomial(2,4) adjustments
Warning: Detection function is not strictly monotonic!AIC= 2515.387
Fitting uniform key function with simple polynomial(2,4,6) adjustments
Warning: Detection function is not strictly monotonic!AIC= 2517.218
Uniform key function with simple polynomial(2,4) adjustments selected.
Warning: Detection function is not strictly monotonic!
# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutias_distance_hn_year <- cutias_year_distance |>
dplyr::filter(year != 2014) |>
dplyr::mutate(Region.Label = year) |>
ajustar_modelos_Distance(
funcao_chave = "hn",
truncamento = "10%")
Fitting half-normal key function
AIC= 2521.42
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 2521.42
Fitting half-normal key function with cosine(2) adjustments
AIC= 2518.639
Fitting half-normal key function with cosine(2,3) adjustments
AIC= 2514.532
Fitting half-normal key function with cosine(2,3,4) adjustments
Warning: Detection function is not strictly monotonic!AIC= 2508.791
Fitting half-normal key function with cosine(2,3,4,5) adjustments
Warning: Detection function is not strictly monotonic!AIC= 2581.978
Half-normal key function with cosine(2,3,4) adjustments selected.
Warning: Detection function is not strictly monotonic!Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 2521.42
Fitting half-normal key function with Hermite(4) adjustments
AIC= 2523.242
Half-normal key function selected.
# ajustando a função de detecção hazard-rate para um truncamento de 10% dos dados
cutias_distance_hr_year <- cutias_year_distance |>
dplyr::filter(year != 2014) |>
dplyr::mutate(Region.Label = year) |>
ajustar_modelos_Distance(
funcao_chave = "hr",
truncamento = "10%")
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 2511.66
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).Starting AIC adjustment term selection.
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 2511.66
Fitting hazard-rate key function with cosine(2) adjustments
AIC= 2519.573
Hazard-rate key function selected.
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).Starting AIC adjustment term selection.
Fitting hazard-rate key function
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).AIC= 2511.66
Fitting hazard-rate key function with simple polynomial(4) adjustments
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).Warning: Model fitting did not converge. Try different initial values or different model
Model failed to converge.
Hazard-rate key function selected.
Warning: Estimated hazard-rate scale parameter close to 0 (on log scale). Possible problem in data (e.g., spike near zero distance).
melhor_modelo_cutias_year <- selecionar_funcao_deteccao_termo_ajuste(
cutias_distance_unif_year$Cosseno,
cutias_distance_unif_year$`Polinomial simples`,
cutias_distance_hn_year$`Sem termo`,
cutias_distance_hn_year$Cosseno,
cutias_distance_hn_year$`Hermite polinomial`,
cutias_distance_hr_year$`Sem termo`,
cutias_distance_hr_year$Cosseno,
cutias_distance_hr_year$`Polinomial simples`
)
melhor_modelo_cutias_year
modelos_cutias_year <- gerar_lista_modelos_selecionados(
cutias_distance_hn_year$Cosseno,
cutias_distance_hr_year$`Sem termo`,
cutias_distance_unif_year$Cosseno,
cutias_distance_unif_year$`Polinomial simples`,
cutias_distance_hn_year$`Sem termo`,
nome_modelos_selecionados = melhor_modelo_cutias_year
)
plotar_funcao_deteccao_modelos_selecionados(modelos_cutias_year)
$`Half-normal with cosine adjustment terms of order 2,3,4`
NULL
$`Hazard-rate`
NULL
$`Uniform with cosine adjustment term of order 1`
NULL
$`Uniform with simple polynomial adjustment terms of order 2,4`
NULL
$`Half-normal`
NULL
#criar uma lista com os modelos selecionados, na ordem de seleção
testar_bondade_ajuste(
modelos_cutias_year,
plot = TRUE,
chisq = FALSE,
)
NA
Aqui são gerados Q-Q plots que permitem avaliar a qualidade do ajuste dos modelos. E também uma tabela com os resultados do Carmér-von Mises, onde W é o valor do teste e p seu valor de significùncia. Nesse caso, quanto maior o valor de p, melhor o ajuste do modelo.
Aqui, sĂŁo resumidos os dados de taxa de encontro, abundĂąncia e densidade em trĂȘs tabelas.
gerar_resultados_Distance(
dados = modelos_cutias_year,
resultado_selecao_modelos = melhor_modelo_cutias_year,
tipo_de_resultado = "area_estudo",
estratificacao = TRUE
)
resultado_abundancia <-
gerar_resultados_Distance(
dados = modelos_cutias_year,
resultado_selecao_modelos = melhor_modelo_cutias_year,
tipo_de_resultado = "abundancia",
estratificacao = TRUE
)
resultado_abundancia
resultado_abundancia |>
dplyr::mutate(ano = as.integer(Regiao)) |>
dplyr::group_by(ano) |>
dplyr::summarise(n = sum(`Abundancia estimada`)) |>
ggplot2::ggplot() +
ggplot2::aes(
x = ano,
y = n
) +
ggplot2::geom_line() +
ggplot2::theme_minimal()
resultados_densidade <-
gerar_resultados_Distance(
dados = modelos_cutias_year,
resultado_selecao_modelos = melhor_modelo_cutias_year,
tipo_de_resultado = "densidade",
estratificacao = TRUE
)
resultados_densidade
resultados_densidade |>
dplyr::filter(Rotulo != "Total") |>
dplyr::mutate(ano = as.integer(Rotulo)) |>
ggplot2::ggplot() +
ggplot2::aes(
x = ano,
y = `Estimativa de densidade`
) +
ggplot2::geom_line() +
ggplot2::facet_wrap(facets = ggplot2::vars(Modelo)) +
ggplot2::theme_minimal()
5.1.6.1.5.1.1 Dados Globais
# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutias_distance_year_hn <- cutias_year_distance |>
ajustar_modelos_Distance(
funcao_chave = "hn",
termos_ajuste = "cos",
truncamento = "10%")
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 2532.73
Fitting half-normal key function with cosine(2) adjustments
AIC= 2530.171
Fitting half-normal key function with cosine(2,3) adjustments
AIC= 2526.024
Fitting half-normal key function with cosine(2,3,4) adjustments
Warning: Detection function is not strictly monotonic!AIC= 2520.496
Fitting half-normal key function with cosine(2,3,4,5) adjustments
Warning: Detection function is not strictly monotonic!AIC= 2539.53
Half-normal key function with cosine(2,3,4) adjustments selected.
Warning: Detection function is not strictly monotonic!
5.1.6.1.5.1.2 2015
# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutias_2015_distance_hn <- cutias_year_distance |>
dplyr::filter(year == 2015) |>
ajustar_modelos_Distance(
funcao_chave = "hn",
termos_ajuste = "cos",
truncamento = "10%")
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 259.852
Fitting half-normal key function with cosine(2) adjustments
AIC= 261.819
Half-normal key function selected.
5.1.6.1.5.1.3 2016
# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutias_2016_distance_hn <- cutias_year_distance |>
dplyr::filter(year == 2016) |>
ajustar_modelos_Distance(
funcao_chave = "hn",
termos_ajuste = "cos",
truncamento = "10%")
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 481.41
Fitting half-normal key function with cosine(2) adjustments
AIC= 479.482
Fitting half-normal key function with cosine(2,3) adjustments
AIC= 481.579
Half-normal key function with cosine(2) adjustments selected.
5.1.6.1.5.1.4 2017
# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutias_2017_distance_hn <- cutias_year_distance |>
dplyr::filter(year == 2017) |>
ajustar_modelos_Distance(
funcao_chave = "hn",
termos_ajuste = "cos",
truncamento = "10%")
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 415.83
Fitting half-normal key function with cosine(2) adjustments
AIC= 414.392
Fitting half-normal key function with cosine(2,3) adjustments
Warning: Detection function is not weakly monotonic!Warning: Detection function is not strictly monotonic!Warning: Detection function is greater than 1 at some distancesWarning: Model fitting did not converge. Try different initial values or different model
Model failed to converge.
Half-normal key function with cosine(2) adjustments selected.
5.1.6.1.5.1.5 2018
# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutias_2018_distance_hn <- cutias_year_distance |>
dplyr::filter(year == 2018) |>
ajustar_modelos_Distance(
funcao_chave = "hn",
termos_ajuste = "cos",
truncamento = "10%")
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 476.763
Fitting half-normal key function with cosine(2) adjustments
AIC= 478.525
Half-normal key function selected.
5.1.6.1.5.1.6 2019
# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutias_2019_distance_hn <- cutias_year_distance |>
dplyr::filter(year == 2019) |>
ajustar_modelos_Distance(
funcao_chave = "hn",
termos_ajuste = "cos",
truncamento = "10%")
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 348.885
Fitting half-normal key function with cosine(2) adjustments
AIC= 350.714
Half-normal key function selected.
5.1.6.1.5.1.7 2020
# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutias_2020_distance_hn <- cutias_year_distance |>
dplyr::filter(year == 2020) |>
ajustar_modelos_Distance(
funcao_chave = "hn",
termos_ajuste = "cos",
truncamento = "10%")
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 337.909
Fitting half-normal key function with cosine(2) adjustments
AIC= 388.614
Half-normal key function selected.
5.1.6.1.5.1.8 2021
# ajustando a função de detecção half-normal para um truncamento de 10% dos dados
cutias_2021_distance_hn <- cutias_year_distance |>
dplyr::filter(year == 2021) |>
ajustar_modelos_Distance(
funcao_chave = "hn",
termos_ajuste = "cos",
truncamento = "10%")
Starting AIC adjustment term selection.
Fitting half-normal key function
AIC= 236.225
Fitting half-normal key function with cosine(2) adjustments
AIC= 237.809
Half-normal key function selected.
modelo_cutias_estrat_year
$tabela_aics
$comparacao_aics
$comparacao_aics$AIC_global
[1] 2520.496
$comparacao_aics$AIC_locais
[1] 2553.508
modelos_cutias_estrat <- gerar_lista_modelos_selecionados(
cutias_distance_year_hn,
cutias_2015_distance_hn,
cutias_2016_distance_hn,
cutias_2017_distance_hn,
cutias_2018_distance_hn,
cutias_2019_distance_hn,
cutias_2020_distance_hn,
cutias_2021_distance_hn,
nome_modelos_selecionados = modelo_cutias_estrat
)
plotar_funcao_deteccao_modelos_selecionados(modelos_cutias_estrat)